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.

Jogo travar na morte

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Jogo travar na morte

Mensagem por 186557 » Ter Mai 21, 2019 11:30 pm

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?

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Jogo travar na morte

Mensagem por None » Ter Mai 21, 2019 11:54 pm

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.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
LLGD
Programador
Programador
Reações: 0
Mensagens: 18

Re: Jogo travar na morte

Mensagem por LLGD » Qua Mai 22, 2019 4:21 pm

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
}

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes