Página 1 de 1

[90%] Sistema simples de pausa em alarm

Enviado: Seg Jul 16, 2018 5:31 pm
por AdrianoPpaula
Fala galera estou com uma dúvida em um sistema simples de pausa para o meu jogo, atualmente ele funciona perfeitamente mas tem um detalhe que não consigo fazer que é pausar um alarm de um objeto. Vou mostrar como ta esse sistema.

//CREATE DE UM OBJETO CONTROLE

Código: Selecionar todos

global.pausa= false;
// NO INICIO DO STEP DO OBJETO QUE EU QUERO QUE PAUSE QUANDO EU PAUSAR

Código: Selecionar todos

if (global.pausa=true){
speed=0;
image_speed=0;
exit;
}
Funciona perfeitamente mas porem se um objeto executou um alarm mesmo pausando o jogo o alarm continua...como que eu faria para que todos os alarm de um objeto pausasse quando eu ligasse a variável pausa e voltasse a contar quando eu desligar.

Re: [90%] Sistema simples de pausa em alarm

Enviado: Seg Jul 16, 2018 6:41 pm
por None
Eu não sei como você está lidando com seus objetos para pausar, mas o jeito que me vem a mente é criar uma variável para cada alarme do objeto.

O código seria mais ou menos assim.
If (global.pause)
{
If (alarme[0] != -1)
{
Alarme0 = alarm[0];
alarm[0] = -1;
}
}
else
{
If (alarme0 > 0)
{
alarm[0] = alarme0;
}
}


Claro, da para melhorar o modelo e fazer tudo bem mais fácil, mas a ideia geral é essa.
Espero ter ajudado.

Re: [90%] Sistema simples de pausa em alarm

Enviado: Qua Jul 18, 2018 9:46 pm
por Foxy Of Jungle
Acho desnecessário utilizar este método, minha dica é:
1 - Criar um obj_pause;
2 - Desativar todas as instâncias e o application_surface_enable(0); (Evento Create)
3 - Criar uma surface depois copia o application_surface para o novo surface; (Evento Create)
4 - Desenhar a surface criada (dando um efeito de pause) (Evento Draw)
5 - Ao destruir o obj_pause, reativa todas as instancias, ativa o application_surface_enable(1) e destrói o surface criado; (Evento Destroy)

OBS: ele "pausa" tudo, inclusive alarmes (testei)