Página 1 de 1

Pause no game?

Enviado: Qui Mai 04, 2017 7:14 pm
por Igor Renan
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"

Re: Pause no game?

Enviado: Qui Mai 04, 2017 10:56 pm
por Willy
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!

Re: Pause no game?

Enviado: Sex Mai 05, 2017 5:08 am
por Igor Renan
willy, funciona, mas a tela só fica preta, não aparece o nome "pausado".... meu game é de plataforma

Re: Pause no game?

Enviado: Sex Mai 05, 2017 12:41 pm
por Superbomber
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:

Re: Pause no game?

Enviado: Sex Mai 05, 2017 5:10 pm
por Igor Renan
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

Re: Pause no game?

Enviado: Sex Mai 05, 2017 6:43 pm
por Thiago Silva Thiago
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