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

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Alucard
Novato
Novato
Reações: 0
Mensagens: 5

Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por Alucard » Qua Jan 20, 2021 11:37 pm

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
SOTN_Alucard_Shield.gif (83.38 KiB) Exibido 1792 vezes

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por All-x » Qui Jan 21, 2021 10:11 am

Você pode fazer o seguinte, no seu player no evento create coloque:

Código: Selecionar todos

// Não tem escudo
meuEscudo = noone;
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.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Alucard
Novato
Novato
Reações: 0
Mensagens: 5

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por Alucard » Sáb Jan 23, 2021 11:43 pm

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).

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por All-x » Sáb Jan 23, 2021 11:46 pm

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:

Código: Selecionar todos

with (meuEscudo) instance_destroy();
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Alucard
Novato
Novato
Reações: 0
Mensagens: 5

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por Alucard » Dom Jan 24, 2021 10:47 am

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.

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?  Tópico resolvido

Mensagem por All-x » Dom Jan 24, 2021 12:23 pm

Eu apreciaria se tu conseguisse arrumar isso.
Tu tá com a faca e o queijo na mão, mas vamos lá kkkkkk
Alucard escreveu:

Código: Selecionar todos

instance_create(x, y, obj_Escudo) depth = -1;
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:

Código: Selecionar todos

image_speed = 0.2; // Só ajustar
depth = -3; 
Deve funcionar :)
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Alucard
Novato
Novato
Reações: 0
Mensagens: 5

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por Alucard » Dom Jan 24, 2021 2:14 pm

Magnificent, agora tá funcionando direitinho, valeu mesmo por ter respondido uma pergunta tão besta

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 621
Localização: Dourados-MS

Contato:

Re: Como faço para criar um escudo estilo Castlevania Symphony of the Night?

Mensagem por All-x » Dom Jan 24, 2021 2:20 pm

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.
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante