Conectar-se
Quem está conectado
30 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 30 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 49

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Janela Modal

em Qua 29 Jul 2015, 17:15

Bom alguns aqui já devem saber o que e uma janela modal.

Mas vo explica rápido do que se trata: É uma janela (tela) que abre na frente de tudo que está sendo exibido no aplicativo, e não deixa mexer em absolutamente NADA que está atrás dela. Algumas até escurecem o que esta atrás indicando que não pode operar lá atrás.

Eu queria saber se tem como fazer isso de um jeito fácil no GMS com uma room.
Com a room seria o ideal, mas com um objeto já dava pra querbrar o galho.
Alguem ai conhece algum metodo ou engine?

Eu até tentei fazer mas no gms mesmo que agente desenhe um objeto em cima de outro ele obedece o clique, mesmo que esteja invisível, isso deu bug no meu sistema modal.

Outra solução que não gostei é ter que programa em cada objeto que tá la atras pra ele não funcionar se estiver colidindo com a janela da frente. Essa até funciona mas achei ela solução meio gambiarra.

Tentei com room persistent mas tb ficou falho o sistema.

avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Janela Modal

em Qua 29 Jul 2015, 18:22
Tire um "print" da tela usando surface, depois, desative todas as instâncias e mande desenhar esse print na tela. Resta agora colocar os objetos da janela ativa sem se preocupar com os outros. Quando for fechar esta janela, basta restaurar tudo ao normal.
avatar
Ranking : Nota C
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Número de Mensagens : 666
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 49

Prêmios
   : 1
   : 0
   : 0
Ver perfil do usuário

Re: Janela Modal

em Qua 29 Jul 2015, 21:58
E uma boa ideia seria tipo nuns esquemas de pause ai que vi pelo forum.

Eu vou testar mas me surgiu uma duvida:

Tenho uma room room_game
Tenho uma outra chamada room_loja

Se eu deixar a room_game como persistente e chamar a room_loja por cima, o que acontece com os objetos da room_game, continuam ativos?

Eu poderia testar eu sei mas e que formatei meu pc e ainda não instalei o gms novamente, vou fazer isso agora. vlw ae.
avatar
Data de inscrição : 15/08/2010
Número de Mensagens : 1597
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 147

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://spyreserver.16mb.com

Re: Janela Modal

em Qua 29 Jul 2015, 22:08
ja fiz isso em um sistema de pause, mais não sei tirar esse print com o gms...
no gm8 acho que eu usava o screen_redraw() ou algo assim '-'

só pegando uma pontinha do seu tópico, como que tira esse "print" com o gms? sabe?
avatar
Data de inscrição : 27/02/2014
Número de Mensagens : 14
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Janela Modal

em Sab 22 Ago 2015, 09:23
Se eu entendi bem, você quer parar a execução do jogo e enviar a janela para o primeiro plano. O jeito mais simples que eu conheço consiste em criar um objeto que executa a função "sleep()" várias vezes dentro de um laço. Por exemplo...

Crie um objeto chamado obj_pause. Em seu evento Step coloque o código:

Código:

io_clear(); // Limpa o estado do teclado e do mouse antes de entrar no laço.
while not mouse_check_button_released(mb_left) sleep(100); // Permaneça parado enquanto não houver um clique (isso é apenas um exemplo de condicional).
io_clear(); // Limpa o estado outra vez para não interferir nos eventos de input dos demais objetos.
instance_destroy(); // Destrua-se.

Quando o objeto for criado no jogo...

Código:
instance_create(0, 0, obj_pause);

...haverá um "pause game". Para jogar a janela no primeiro plano, use "window_set_stayontop()", mas não sei se essa função existe no GMS.

Boa sorte!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum