Como fazer com que o herói morra e mude o sprite para ele morto?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Viper7 em Qua 02 Dez 2009, 16:58

Olá pessoal, tudo bom?
Eu estou com a seguinte dúvida:

Descrição: No meu jogo, quando o personagem encosta em um espinho ele morre e volta para o início da fase.
Dúvida: Eu quero que, quando o personagem encoste nesse tal objeto, ele mude para um sprite dele morto, fique cerca de 1 segundo com esse sprite, e depois volte para o início da fase com o sprite do personagem normal.
Detalhe: Eu quero que, se o personagem morrer virado para a esquerda, troque para o sprite dele morto virado para a esquerda, e se ele morrer virado para a direita, troque para o sprite dele morto virado para a direita.
O que eu já tentei fazer: No obj_heroi está assim: Add Event -> Colision (obj_espinho) -> jump to the start position; Set The Health Relative To -20; Play Sound Dano. Aí eu tentei fazer isso: Nessa mesma aba de colisão com o obj_espinho eu coloquei Change Sprite e selecionei o Sprite do heroi morto, mas não funcionou, ou funcionou e foi tão rápido que está imperceptível, pois o herói morre e volta muito rápido para o início da fase.

Abraços!

Viper7

Número de Mensagens : 82
Data de inscrição : 20/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mascotegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por golfinho hipie assasino em Qua 02 Dez 2009, 18:46

o esquema de esperar 1 segundo pode ser feito com alarmes...aqui esta um otimo tutorial sobre alarmes http://gmbr.forumeiros.com/game-maker-f36/alarmes-wtf-t3936.htm . não poderei te ajudar com o resto

golfinho hipie assasino

Número de Mensagens : 286
Idade : 22
Data de inscrição : 22/10/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Viper7 em Qua 02 Dez 2009, 18:54

Obrigado golfinho hipie assasimo!!!
Vou fazer o tutorial do alarme.
Se alguém souber resolver o restante das dúvidas, posta aew Very Happy

Viper7

Número de Mensagens : 82
Data de inscrição : 20/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mascotegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por CPinheiro em Qua 02 Dez 2009, 19:25

Você está usando o código do meu tutorial sobre jogos de plataformas? É simples, então.

Se você observar o início daquele código (no evento Create) verá que eu declarei uma variável chamada lado. Se essa variável fosse igual à 1, o personagem estaria virado para a direita. Se fosse 0, estaria virado para a esquerda.

Crie um objeto que seria seu personagem morto. Nele, coloque o sprite dele morto e esse código no evento Create:

Código:

alarm[0] = 1 * room_speed;

Esse código seta o Alarm 0 para 1 multiplicado pela room_speed, que normalmente tem valor igual à 30. Se você ler meu tutorial sobre alarmes, verá que pra obter um segundo, seria necessário colocar 30 ali. Como a room_speed está em 30, 1 seria basicamente o número de segundos. Se você colocar 2 ao invés de 1, demoraria 2 segundos.

Agora, coloque esse código no evento Alarm 0:

Código:
room_restart();
O comando room_restart() faz com que a room seja reiniciada do zero.

Para a questão dos lados, basta colocar o seguinte código no evento Step:

Código:
if (lado == 1) // Se a variável lado for igual à 1
{ //Abre a chave
image_xscale = 1; //Seta a variável image_xscale para 1, ou seja, o sprite fica normal
} //Fecha a chave
else //Se a variável lado NÃO for igual à 1
{ //Abre a chave
image_xscale = -1; //Seta a variável image_xscale para -1, ou seja, inverte o sprite horizontalmente
} //Fecha a chave

Deixei o código bem comentado para que você possa entender e aprender como funciona, e não apenas copiar o código, como muitos fazem. (:

Agora, abra o objeto do jogador. Coloque isso no evento de colisão com os espinhos:

Código:

oo = instance_create(x,y,obj_personagem_morto); //Cria um objeto do personagem morto na posição atual do personagem. oo foi uma variável que guarda a ID do objeto, para que eu possa me referir ao objeto que foi criado, e não a outro de nome igual que exista na room
oo.lado = lado; //Crio uma variável chamada lado no objeto do personagem morto. Nela, damos o mesmo valor da variável lado do personagem, para que fiquem virados para o mesmo lado
sound_play(som_personagem_morto); //Essa linha é opicional, serve pra tocar um som quando o personagem morrer. Se quiser, pode tirar ela
instance_destroy(); //Destroi o objeto do personagem

Well, vamos às explicações. O comando instance_create(posição x, posição y, nome do objeto serve para criar um objeto.
sound_play(nome do som) é outro comando. Este aqui serve para tocar um som que você escolher.
Por fim, instance_destroy() serve para destruir o objeto que executou esse código.

Espero que tenha entendido tudo. Notei que você gosta de usar Drag 'n Drop, então usei códigos de GML bem básicos e expliquei cada um deles, para que você possa iniciar na linguagem facilmente.

Qualquer dúvida ou erro, poste.

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Viper7 em Qua 02 Dez 2009, 19:42

CPinheiro, o seu tutorial está muito bom. Eu estou lendo os comentários para entender como funciona a programação no Game Maker.

Porém, ocorreu o seguinte erro: Quando o personagem encosta no espinho, ele fica com o sprite dele morto agarrado no espinho e não volta para o início da fase. Acho que teria que colocar em forma de código o evento "Jump to the start position"
---------------------------------
EDIT: Quando o personagem encosta no espinho, aparece ele morto só virado pra esquerda, independente da posição que ele esteja.
Eu estou usando a engine de plataforma que você criou mesmo.


Última edição por Viper7 em Qua 02 Dez 2009, 19:52, editado 2 vez(es)

Viper7

Número de Mensagens : 82
Data de inscrição : 20/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mascotegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por diassis em Qua 02 Dez 2009, 19:50

IRMAIZINHO!!!!
nao sei como você fez o movimento... mas não custa nada ver se isso funciona...

cria um alarme (0), dentro dele você coloca o...
Código:

x=xstart;
y=ystart;
a função de retornar ao local onde a instancia surgiu

na colisão com o espinho...
Código:

if (direction=0)  // se a direção for direita
{
with (other) instance_destroy();  // destroi o espinho
sprite_index=morto_direita;  // troca o sprite para morto direito
alarm[0]=60;
}

if (direction=180)  // se a direção for esquerda
{
with (other) instance_destroy();
sprite_index=morto_esquerda;  // troca o sprite para morto esquerdo
alarm[0]=60;
}

alarm[0]=60 ativa o alarme que você criou anteriormente, o alarme conta 60 passos de tempo para axecultar a ação de retornar ao inicio.

bem!!! não testei aqui. mas é basicamente isso. tenta aí pra ver falow???

diassis

Número de Mensagens : 310
Idade : 40
Data de inscrição : 07/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Viper7 em Qua 02 Dez 2009, 19:56

Beleza diassis, vou tentar o seu método aqui também com outro personagem.
-------------------------------
EDIT: Eu entendi o seu raciocínio diassis, mas eu executei o código e não aconteceu nada, rsrs.. parece que o código não estava no jogo. O que será que aconteceu?

Viper7

Número de Mensagens : 82
Data de inscrição : 20/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mascotegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por CPinheiro em Qua 02 Dez 2009, 20:21

Estranho isso. Era pra estar funcionando.
Nota: pro esquema do image_xscale dar certo, seu sprite tem que estar virado para a direita.

Bem, mude o código da morte para isso:

Código:

oo = instance_create(x,y,obj_personagem_morto); //Cria um objeto do personagem morto na posição atual do personagem. oo foi uma variável que guarda a ID do objeto, para que eu possa me referir ao objeto que foi criado, e não a outro de nome igual que exista na room
oo.lado = lado; //Crio uma variável chamada lado no objeto do personagem morto. Nela, damos o mesmo valor da variável lado do personagem, para que fiquem virados para o mesmo lado
oo.xinicial = xstart;
oo.yinicial = ystart;
sound_play(som_personagem_morto); //Essa linha é opicional, serve pra tocar um som quando o personagem morrer. Se quiser, pode tirar ela
instance_destroy(); //Destroi o objeto do personagem

E isso no alarm 0:

Código:
instance_create(xinicial,yinicial,obj_jogador);

Substitua os códigos.
Era pra ter funcionado antes, mas já que não funcionou, tente agora.

CPinheiro

Número de Mensagens : 1015
Idade : 20
Data de inscrição : 01/06/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://supermariobrasileiro.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Viper7 em Qua 02 Dez 2009, 21:37

CONSEGUI!!! cheers
Grande Mestre CPinheiro, o seu primeiro tutorial está correto, funcionando perfeitamente. Eu tentei fazê-lo novamente aqui e funcionou. Na primeira vez em que eu tentei, eu coloquei alguns comandos em objetos errados. Eu ainda sinto um pouco de dificuldade em trabalhar com códigos, mas eu vou começar a ler o FAQ do Game Maker para aprender a trabalhar melhor com esses códigos.

Mais uma vez, obrigado pela ajuda e obrigado pelos dois tutoriais!
Obrigado também ao diassis, por ter tentado me ajudar!

Um grande abraço a todos!!!

Viper7

Número de Mensagens : 82
Data de inscrição : 20/11/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mascotegames.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como fazer com que o herói morra e mude o sprite para ele morto?

Mensagem por Conteúdo patrocinado Hoje à(s) 10:33


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum