Problema para mudar de Room através de Alarm.

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

Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Ter 29 Dez 2009, 22:45

Pessoal, em um inimigo presente no meu jogo, eu coloquei um evento na colisão com o tiro do herói para o inimigo morrer e o herói avançar para a próxima Room, como vocês podem observar abaixo:

{
sound_play (snd_inimigo_morre); // Executa um som do inimigo morrendo.
instance_destroy(); // O inimigo é destruído
room_goto_next() // Avança o herói para a próxima Room
}


Só que o inimigo morre e imediatamente o herói avança para a próxima Room e eu gostaria de fazer com que, após o inimigo morrer, demorar cerca de uns 4 segundos para o herói ir para a próxima Room. Eu tentei adicionar no código acima um sistema de Alarm e ficou assim:

sound_play (snd_inimigo_morre);// Executa um som do inimigo morrendo.
instance_destroy(); // O inimigo é destruído
alarm[5] = 4*room_speed // Chama o alarme 5 depois de ter passado 4 segundos. Eu utilizei o alarme 5 porque do 1 ao 4 eu já estou utilizando para fazer o tiro do inimigo.

Então no alarme 5 eu coloquei isso:
{
room_goto_next()
}


E não funcionou. Vocês sabem o que pode estar dando de errado?

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: Problema para mudar de Room através de Alarm.

Mensagem por RodrigoM. em Ter 29 Dez 2009, 23:10

Código:

instance_destroy(); // O inimigo é destruído
alarm[5] = 4*room_speed // Chama o alarme 5 depois de ter passado 4 segundos. Eu utilizei o alarme 5
se o Objeto é destruído ele não pode executa nenhuma ação mais! [:¬D]

Fallow

RodrigoM.

Número de Mensagens : 569
Idade : 21
Data de inscrição : 06/08/2009
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Ter 29 Dez 2009, 23:22

CyraxX escreveu:
Código:

instance_destroy(); // O inimigo é destruído
alarm[5] = 4*room_speed // Chama o alarme 5 depois de ter passado 4 segundos. Eu utilizei o alarme 5
se o Objeto é destruído ele não pode executa nenhuma ação mais! [:¬D]

Fallow

Mas esse código funciona:
{
sound_play (snd_inimigo_morre); // Executa um som do inimigo morrendo.
instance_destroy(); // O inimigo é destruído
room_goto_next() // Avança o herói para a próxima Room
}


O personagem vai para a próxima Room mesmo depois que o objeto é destruído.

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: Problema para mudar de Room através de Alarm.

Mensagem por RodrigoM. em Ter 29 Dez 2009, 23:32

Uhm...
vamos ver...
Eu to sem Gm aqui ai não da pra testa nada, tenta tira o room_speed...
Define a velocidade da room depois!

POde não ter nada a vê, mais tentei ajuda! [:¬D]

--------------

Olha essa engine que eu fiz pra um amigo do forum:
http://www.gamemakerbrasil.com/perguntas-respostas-f10/texto-na-room-t4650.htm

Ela muda os textos por alarm...

RodrigoM.

Número de Mensagens : 569
Idade : 21
Data de inscrição : 06/08/2009
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Ter 29 Dez 2009, 23:39

Eu tentei tirar a velocidade da Room e deixar somente o Alarm, mas deu erro na última chave "}" e o jogo não abriu. Então eu tirei a chave e mesmo assim deu erro na linha que estava ela, possivelmente pela auxência dela, rsrs...

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: Problema para mudar de Room através de Alarm.

Mensagem por RodrigoM. em Ter 29 Dez 2009, 23:49

uhm... è difícil assim...

Agora que você falo das chaves, eu percebi, porque você coloco elas ?

Eu vo baixa um GM aqui pra mim tenta fazer uma engine pra vocÊ!

Mais tarde eu volto! [:¬D]

RodrigoM.

Número de Mensagens : 569
Idade : 21
Data de inscrição : 06/08/2009
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Qua 30 Dez 2009, 00:04

CyraxX escreveu:uhm... è difícil assim...

Agora que você falo das chaves, eu percebi, porque você coloco elas ?

Eu vo baixa um GM aqui pra mim tenta fazer uma engine pra vocÊ!

Mais tarde eu volto! [:¬D]

Colega, agradeço muito por estar tentando me ajudar.
Abaixo segue o código inteiro da colisão entre o tiro e o inimigo:

with (other) instance_destroy();
if (vida_inimigo>0)
{
sound_play(snd_disco_verde_apanhando);
vida_inimigo-=10;
}
else
{
sound_play (snd_disco_verde_morre);
instance_destroy();

alarm[5] = 4
}

Eu coloquei as aspas porque neste evento está o dano que o inimigo sofre e a morte dele. Onde está em verde é a parte que funciona. A parte em vermelho é a parte problemática, a que não está sendo lida pelo evento. No lugar desse alarm[5] se eu colocar room_goto_next() o personagem irá para a próxima Room, o que explica que esse evento está sendo lido após a destruição do objeto. Mas eu quero que o personagem demore alguns segundos antes de ir para a próxima Room, e parece que o evento do alarme o código não está lendo.
Eu tentei usar o seu tutorial também, que aliás está ótimo e com certeza eu o aproveitarei em outras ocasiões, mas o meu problema ainda persiste.

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: Problema para mudar de Room através de Alarm.

Mensagem por Janx em Qua 30 Dez 2009, 01:02

No alarm[5] tem oque? Apenas o código de passar de room né?
Ele serve apenas para dar uma "pausa" correto?

Simples, que tal destruir o objeto junto do momento que passar de room?
Remova esse instance_destroy()
deixe apenas o do som e o alarm, depois no evento do alarm coloque
room_goto_next, ou oque você quer para passar de room e no fim para destruir.

Claro, se o objeto não for persistent (é destruido no final da room), você nem precisaria adicionar esse código.

Movido.

Flws

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por RodrigoM. em Qua 30 Dez 2009, 01:24

Bem o Chefe falo, ta falado! [:¬D]

Como eu imaginava, o erro estava no instance_destroy!

Se ele continua, me passa a engine do teu jogo pra mim por MP pra mim poder ver o que ta errado, ai é mais facil! [:¬D]

Fallow

RodrigoM.

Número de Mensagens : 569
Idade : 21
Data de inscrição : 06/08/2009
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Qua 30 Dez 2009, 01:30

Janx escreveu:No alarm[5] tem oque? Apenas o código de passar de room né?
Ele serve apenas para dar uma "pausa" correto?

Simples, que tal destruir o objeto junto do momento que passar de room?
Remova esse instance_destroy()
deixe apenas o do som e o alarm, depois no evento do alarm coloque
room_goto_next, ou oque você quer para passar de room e no fim para destruir.

Claro, se o objeto não for persistent (é destruido no final da room), você nem precisaria adicionar esse código.

Movido.

Flws

Agora o código está lendo o alarme, porém está passando para ele sem esperar os segundos necessários. Resumindo: O herói ainda está passando rapidamente para a próxima Room depois de derrotar o inimigo, porém o código está lendo o alarme agora.

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: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Qua 30 Dez 2009, 01:38

CyraxX escreveu:Bem o Chefe falo, ta falado! [:¬D]

Como eu imaginava, o erro estava no instance_destroy!

Se ele continua, me passa a engine do teu jogo pra mim por MP pra mim poder ver o que ta errado, ai é mais facil! [:¬D]

Fallow

Obrigado pelo apoio CyraxX, mas mandar a engine do meu jogo agora vai ser meio complicado, porque eu não estou com internet em casa e uso a internet no trabalho.
Além do mais, o meu jogo já está com cerca de 20MB e eu estou fazendo a 11º fase. É que agora vai começar em meu jogo uma parte em que joga com uma nave, aí a engine mudou completamente.

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: Problema para mudar de Room através de Alarm.

Mensagem por Janx em Qua 30 Dez 2009, 01:42

Bom cara, ele não está passando direto, está passando 4 steps depois de quando ele "morre"
oque da mais ou menos (se vc tiver com o jogo em 30fps) uns 0,13segundos ou seja 13milésimos.
Bastante rápido né?

Tente aumentar esse tempo.
Use uma formulinha basica para você poder regular menor:
Código:
alarm[5] = 1*room_speed //1=Minutos

room_speed você não modifica, deixa assim. é o FPS.
Você muda o "1". Se quiser que espere 1segundo deixe 1. Se quiser 2 segundos deixe 2. Se quiser meio segundo deixe 0.5, assim por diante.

@Evite posts duplos!

Flwss

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Qua 30 Dez 2009, 02:45

Janx escreveu:Bom cara, ele não está passando direto, está passando 4 steps depois de quando ele "morre"
oque da mais ou menos (se vc tiver com o jogo em 30fps) uns 0,13segundos ou seja 13milésimos.
Bastante rápido né?

Tente aumentar esse tempo.
Use uma formulinha basica para você poder regular menor:
Código:
alarm[5] = 1*room_speed //1=Minutos

room_speed você não modifica, deixa assim. é o FPS.
Você muda o "1". Se quiser que espere 1segundo deixe 1. Se quiser 2 segundos deixe 2. Se quiser meio segundo deixe 0.5, assim por diante.

@Evite posts duplos!

Flwss

Obrigado janx! Agora o evento já está lendo o Alarm e eu aprendi a controlar o tempo do Alarm, porém o inimigo após perder, fica na tela até dar o tempo de ocorrer o evento do alarme, ou seja, o game só está lendo o evento "instance_destroy()" do inimigo após o alarme ser chamado, então quando eu derroto o inimigo ele fica na tela com o life vazio esperando o alarme ser chamado para ele explodir e ir para a próxima Room. E se eu colocar o "instance_destroy()" antes de chamar o alarme, o inimigo é destruído e o alarme para mudar de Room não é chamado.

Dúvida Off
Me desculpe pelo post duplo. Isso não é de meu costume, foi uma distraída minha. Eu gostaria de apagar um dos posts para inserir a mensagem no anterior, para organizar o tópico. Tem como eu fazer isso?

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: Problema para mudar de Room através de Alarm.

Mensagem por diassis em Qua 30 Dez 2009, 09:38


else
{
sound_play (snd_disco_verde_morre);
instance_destroy();
alarm[5] = 4
}



o seu código pode funcionar sim.... o erro é que o alarme é criando depois que o inimigo morre, o inimigo nao poderia criar mais nada depois de morto
o certo seria criar o alarme antes do instance_destroy()


else
{
sound_play (snd_disco_verde_morre);
alarm[5] = 4
instance_destroy();
}

EDITADO.............

DETALHE: esse alarme deveria ser de outro objeto senão continuará sem funcional

ex: obj_controle.alarm[5]=4 // alarme do obj_controle que faz passar de room

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: Problema para mudar de Room através de Alarm.

Mensagem por Igor KinGamer em Qua 30 Dez 2009, 12:16

Viper7 escreveu:
CyraxX escreveu:
Código:

instance_destroy(); // O inimigo é destruído
alarm[5] = 4*room_speed // Chama o alarme 5 depois de ter passado 4 segundos. Eu utilizei o alarme 5
se o Objeto é destruído ele não pode executa nenhuma ação mais! [:¬D]

Fallow

Mas esse código funciona:
{
sound_play (snd_inimigo_morre); // Executa um som do inimigo morrendo.
instance_destroy(); // O inimigo é destruído
room_goto_next() // Avança o herói para a próxima Room
}


O personagem vai para a próxima Room mesmo depois que o objeto é destruído.

Só esclarecendo: mesmo que o objeto tenha sido destruido, o código ainda é lido até o final, por isso que vai para a próxima room. Porém, uma vez que ele não existe mais, não há como o evento de alarm acontecer.

Faz como o diassis falou, ativa o alarm em outro objeto, como o personagem, ex.:

{
sound_play (snd_inimigo_morre); // Executa um som do inimigo morrendo.
instance_destroy(); // O inimigo é destruído
obj_Personagem.alarm[0] = 4*room_speed;
}

Daí só troca "obj_Personagem" pelo nome do seu objeto, se já está usando o alarm[0] dele, troca, muda o 4 pela quantidade de segundos que quiser e coloca no alarm que você escolheu do personagem:

room_goto_next();

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Problema para mudar de Room através de Alarm.

Mensagem por Viper7 em Qua 30 Dez 2009, 13:26

CONSEGUI!!!! cheers

Muito obrigado Igor KinGamer!!!!
Obrigado também a todos que postaram com o intuito de 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: Problema para mudar de Room através de Alarm.

Mensagem por Conteúdo patrocinado Hoje à(s) 19:53


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