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.

Pause no game?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Igor Renan
Membro
Membro
Reações: 0
Mensagens: 23

Pause no game?

Mensagem por Igor Renan » Qui Mai 04, 2017 7:14 pm

como faz pra programar um pause no game maker? alguém pode me ensinar como? com códigos... só para a tela ficar preta com o nome "game paused"

Avatar do usuário
Willy
Novato
Novato
Reações: 0
Mensagens: 18

Re: Pause no game?

Mensagem por Willy » Qui Mai 04, 2017 10:56 pm

A forma básica de "pausar" um game, é desativando todas as instâncias presentes.

Crie um objeto com o nome que desejar, como por exemplo, obj_pause.
No evento create, declare a variável:

Código: Selecionar todos

pause = false
Em um botão que desejar (como o "Press P"), você ira alternar o estado dessa variável:

Código: Selecionar todos

if (pause = true){
pause = false;
instance_activate_all();
}else{
pause = true;
instance_deactivate_all(true);
}
Só até ai, já fazemos o jogo pausar e despausar. Desativando uma instância, todos seus códigos deixam de ser executados (inclusive o que faz com o sprite seja desenhado na tela), e, quando você a reativa, todos os códigos continuam de onde estavam. Se você testar agora, verá que ao pausar, tudo vai sumir.

No draw, você deve fazer com que o jogador saiba que está pausado:

Código: Selecionar todos

if (pause=true){
draw_set_color(c_black);
draw_rectangle(0,0,room_width, room_height, false);
draw_set_color(c_white);
draw_text(room_width/2, room_height/2,"Pausado!");
}

Neste draw, desenhamos um fundo preto que cobre a room toda e desenhamos um texto no meio da room. Note que, se sua room for maior que a view, o texto não aparecerá onde deveria, portanto, faça o ajuste do posicionamento do texto como preferir.

Eu não testei nenhum código, porém, a lógica é essa. Boa sorte!

Avatar do usuário
Igor Renan
Membro
Membro
Reações: 0
Mensagens: 23

Re: Pause no game?

Mensagem por Igor Renan » Sex Mai 05, 2017 5:08 am

willy, funciona, mas a tela só fica preta, não aparece o nome "pausado".... meu game é de plataforma

Avatar do usuário
Superbomber
Programador
Programador
Reações: 0
Mensagens: 283
Localização: Natal-RN

Re: Pause no game?

Mensagem por Superbomber » Sex Mai 05, 2017 12:41 pm

Pois é Igor, porque o que o Willy te passou é uma explicação e não código pronto para copiar e colar.

Como ele mesmo disse:
Willy escreveu: Neste draw, desenhamos um fundo preto que cobre a room toda e desenhamos um texto no meio da room. Note que, se sua room for maior que a view, o texto não aparecerá onde deveria, portanto, faça o ajuste do posicionamento do texto como preferir.
É só ler a explicação dele e fazer o código de acordo. :lendo:
Entrem neste link com o JavaScript desabilitado e vejam a mágica: https://tgmbrasil.com.br/?PageSpeed=n0script

Avatar do usuário
Igor Renan
Membro
Membro
Reações: 0
Mensagens: 23

Re: Pause no game?

Mensagem por Igor Renan » Sex Mai 05, 2017 5:10 pm

olá superbomber! e onde é que altera de acordo com o a room? é q eu n entendo de programação msm kkkk eu coloquei em draw GUI, e apareceu o nome onde eu queria, porém depois que o player morre e vai para a tela de game over, o pause começa a funcionar nas outras rooms também caso eu apertar o botão de pausar... acontece tanto com Draw quando com Draw GUI, a diferença é que na hora de jogar, com o Draw GUI fica centralizado

Avatar do usuário
Thiago Silva Thiago
Membro
Membro
Reações: 0
Mensagens: 25

Re: Pause no game?

Mensagem por Thiago Silva Thiago » Sex Mai 05, 2017 6:43 pm

Especifique melhor seu problema, eu não consegui entender muito bem
Se for só o problema das rooms, a solução é verificar antes de pausar se não esta numa room de menu
No botão de pausar

Código: Selecionar todos

if (pause = true){
pause = false;
instance_activate_all();
}else
if ((room != talroom) && (room != talroom2)){
pause = true;
instance_deactivate_all(true);
}
Lembrando que em talroom vc deve ponhar as rooms que você nao quer que funcione o pause
20 anos, estudante de linguagens de programação.
Uso Godot Engine.

Responder

Quem está online

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