Página 1 de 1
Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Enviado: Qua Jan 20, 2021 11:37 pm
por Alucard
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.
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Enviado: Qui Jan 21, 2021 10:11 am
por All-x
Você pode fazer o seguinte, no seu
player no evento
create coloque:
No
step (Usei a tecla espaço de exemplo):
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);
}
No
end step:
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;
}
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.
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Enviado: Sáb Jan 23, 2021 11:43 pm
por Alucard
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?
Enviado: Sáb Jan 23, 2021 11:46 pm
por All-x
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).
Sim, esse modo só é suportado no GMS2. Só trocar por:
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Enviado: Dom Jan 24, 2021 10:47 am
por Alucard
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.
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night? Tópico resolvido
Enviado: Dom Jan 24, 2021 12:23 pm
por All-x
Eu apreciaria se tu conseguisse arrumar isso.
Tu tá com a faca e o queijo na mão, mas vamos lá kkkkkk
Você está mudando o
depth do
player e não do escudo. Só remova o
depth = -1 e continuemos.
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
No
create do
obj_Escudo defina a velocidade da animação e o depth:
Deve funcionar :)
Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?
Enviado: Dom Jan 24, 2021 2:14 pm
por Alucard
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?
Enviado: Dom Jan 24, 2021 2:20 pm
por All-x
Alucard escreveu:Magnificent, agora tá funcionando direitinho, valeu mesmo por ter respondido uma pergunta tão besta
"Não existe pergunta BESTA, existe o BESTA que não pergunta"
Fica ai a reflexão, melhor perguntar do que ficar eternamente na ignorância :hahaha:
EDIT: Movi o tópico pra sessão correta.