Se a animação tá invertida, basta trocar a ordem da sua sprite (Ou você setou image_speed com valor negativo em algum outro lugar).
Se está repetindo duas vezes, você também tem que fixar o último frame, logo o código no Animation end fica assim:
No create do obj_Escudo defina a velocidade da animação e o depth:
Deve funcionar :)
Fica ai a reflexão, melhor perguntar do que ficar eternamente na ignorância :hahaha:
EDIT: Movi o tópico pra sessão correta.
Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Como faço para criar um escudo estilo Castlevania Symphony of the Night? Tópico resolvido
Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Olá, estou tentando fazer com que o personagem quando aperte alguma tecla use o escudo igual no Castlevania SOTN, mas não tenho ideia de como fazer isso. O escudo seria uma sprite separada do jogador, ela tem mais de um frame na hora em que aparece, e segue o personagem quando se move.
- Anexos
-
- SOTN_Alucard_Shield.gif (83.38 KiB) Exibido 1790 vezes
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Você pode fazer o seguinte, no seu player no evento create coloque:
No step (Usei a tecla espaço de exemplo):
No end step:
No código acima usa-se o image_xscale pra saber se está virado para esquerda ou direita, multiplicado pela distância que quero que fique (Lembrando que a sprite é centralizada). Se tu usa sprites diferentes pra cada lado, só criar uma condição pra isso, molezinha.
Pra animação do escudo, basta colocar no evento animation end dele image_speed = 0, desde que a animação seja como na gif, um escudo pequeno viando o escudo normal no último frame.
Código: Selecionar todos
// Não tem escudo
meuEscudo = noone;
Código: Selecionar todos
// Se não existe escudo e está segurando a tecla
if keyboard_check(vk_space) and !instance_exists(meuEscudo)
{
// Cria o escudo
meuEscudo = instance_create_depth(x, y, -1, obj_escudo);
}
// Existe escudo e não está segurando a tecla
else if keyboard_check(vk_space) == false
{
// Destrói o escudo
instance_destroy(meuEscudo);
}
Código: Selecionar todos
// Se tem um escudo
if instance_exists(meuEscudo)
{
// posiciona ele na frente do player
meuEscudo.x = x + (32 * image_xscale);
meuEscudo.image_xscale = image_xscale;
}
Pra animação do escudo, basta colocar no evento animation end dele image_speed = 0, desde que a animação seja como na gif, um escudo pequeno viando o escudo normal no último frame.
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Valeu pela resposta, mas está dando um problema no instance_destroy(meuEscudo); , talvez seja por que estou usando o GMS 1.4(sei lá, sou novo no Game Maker).
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Sim, esse modo só é suportado no GMS2. Só trocar por:Alucard escreveu:Valeu pela resposta, mas está dando um problema no instance_destroy(meuEscudo); , talvez seja por que estou usando o GMS 1.4(sei lá, sou novo no Game Maker).
Código: Selecionar todos
with (meuEscudo) instance_destroy();
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Tá funcionando agora, mas tá dando problema, o GMS 1.4 não tem a função instance_create_depth, então eu adaptei assim:
instance_create(x, y, obj_Escudo) depth = -1;
legal, daí no animation end eu coloquei:
image_speed = 0; depth = -3;
só que por algum motivo desconhecido o personagem quando vai usar o escudo ele repete o frame do escudo vindo duas vezes, além da animação tá invertida(tipo, o escudo fica no frame do escudo vindo, não no escudo normal), e a animação tá rápida demais. Eu apreciaria se tu conseguisse arrumar isso.
instance_create(x, y, obj_Escudo) depth = -1;
legal, daí no animation end eu coloquei:
image_speed = 0; depth = -3;
só que por algum motivo desconhecido o personagem quando vai usar o escudo ele repete o frame do escudo vindo duas vezes, além da animação tá invertida(tipo, o escudo fica no frame do escudo vindo, não no escudo normal), e a animação tá rápida demais. Eu apreciaria se tu conseguisse arrumar isso.
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night? Tópico resolvido
Tu tá com a faca e o queijo na mão, mas vamos lá kkkkkkEu apreciaria se tu conseguisse arrumar isso.
Você está mudando o depth do player e não do escudo. Só remova o depth = -1 e continuemos.Alucard escreveu:Código: Selecionar todos
instance_create(x, y, obj_Escudo) depth = -1;
Se a animação tá invertida, basta trocar a ordem da sua sprite (Ou você setou image_speed com valor negativo em algum outro lugar).
Se está repetindo duas vezes, você também tem que fixar o último frame, logo o código no Animation end fica assim:
Código: Selecionar todos
image_speed = 0; // Para animação
image_index = image_number - 1; // Fica no último frame
Código: Selecionar todos
image_speed = 0.2; // Só ajustar
depth = -3;
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Magnificent, agora tá funcionando direitinho, valeu mesmo por ter respondido uma pergunta tão besta
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
"Não existe pergunta BESTA, existe o BESTA que não pergunta"Alucard escreveu:Magnificent, agora tá funcionando direitinho, valeu mesmo por ter respondido uma pergunta tão besta
Fica ai a reflexão, melhor perguntar do que ficar eternamente na ignorância :hahaha:
EDIT: Movi o tópico pra sessão correta.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante