Página 1 de 1
Jogo travar na morte
Enviado: Ter Mai 21, 2019 11:30 pm
por 186557
Eu fiz um pequeno sistema de vidas, hp e morte, no caso
Código: Selecionar todos
global.bunny_vida = 100; //verifica o HP do player
global.vidas = 3 // verifica quantas vidas o player tem
E para a morte eu fiz isso
Código: Selecionar todos
if global.bunny_vida > 100 global.bunny_vida = 100
if global.bunny_vida < -1 global.bunny_vida = -1
if global.bunny_vida < 0 {
global.vidas -= 1;
room_restart()
}
Mas quando o HP do player chega a 0 o jogo trava, eu tentei usar um "game_restart()" no lugar do "room_restart()" funcionou, mas o contador de vidas não diminui. Como posso resolver?
Re: Jogo travar na morte
Enviado: Ter Mai 21, 2019 11:54 pm
por None
Seu código possui algumas "inconsistências".
Tu quer que quando o coelho não tiver mais hp, ele perca a vida, porém tu tem que garantir que isso só vai ocorrer uma vez, caso contrário ele vai tirar vidas ad infinitum.
Então tu precisa aumentar um pouquinho o seu código do If.
Seria mais ou menos
If (coelho.vida <= 0)
{
Global.vidas--;
room_restart();
}
Isso SE o seu objeto controlador for persistente e você tenha feito um singleton Pattern para garantir que só vai haver 1 objeto controlador.
Re: Jogo travar na morte
Enviado: Qua Mai 22, 2019 4:21 pm
por LLGD
Eu particularmente crio um objeto controle, defino ele como persistente, coloco todas as variaveis globais nele. Crio uma sala: "rInit" e coloco ele nessa sala, no creation code da sala, ou no create do objeto controle eu mando ele ir pra outra sala com o room_goto_next(); e então seu código no step ficaria assim:
Código: Selecionar todos
global.bunny_vida = clamp(global.bunny_vida,0,100); //Isso grampeia os valores da vida para 0 e 100
if global.bunny_vida == 0 {
global.bunny_vida = 100;
global.vidas -= 1;
room_restart();
}
if global.vidas == 0 {
//Destrói todos os objetos e vai para a sala inicial, isso porque o game_restart() está bugado.
show_message("Todas as suas vidas acabaram, tente novamente.")
with(all) //Com todos os objetos
{
instance_destroy(); //Destrói
}
room_goto(rInit); //Volta pra tela inicial e reinicia o jogo
}