GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Retorno da GMBR!!!
por vinians Qui 14 Mar 2024, 19:07

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16

» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05

» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55

» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39

» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28

» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01


Uma janela da frente da room que só ela tenha o foco

4 participantes

Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Uma janela da frente da room que só ela tenha o foco

Mensagem por Mauricio Dom 08 Abr 2012, 02:11

Olá pessoal!

Estou fazendo uma espécie de aplicativo com o GM, e gostaria muito de saber se há como fazer isso:

- Tenho uma room com vários botões que executam várias funções. Um botão desses abre uma janela de configuração.
- Essa janela surge e fica na frente de todo o resto, pegando o "foco" da aplicação. Ou seja, quero que só os botões dessa janela sejam utilizados, todos os botões atrás sejam ignorados.

- Eu imaginava que se colocasse um objeto com um depth menor que outro (tapando ele) o de trás seria ignorado em eventos de clique, mouse enter, etc. Mas na realidade tudo funciona...

- Não quero fazer essa janela em outro room pois tenho uma grande quantidade de coisas carregadas no room atual que daria trabalho restaurar o estado antigo na mão, quando retornar para room original.

- Posso criar variáveis de controle para quando essa janela estiver sobre tudo e com isso ignorar as ações dos botões atrás, mas será que não tem outra forma mais prática? Alguma mutreta com views, etc?

- Outra forma é usar o instance_deactivate_all logo antes de chamar a janela. Porém no help isso diz que pode dar problemas, usar com cuidado, e faz tudo desaparecer. Gostaria que essa janela ficasse no meio da tela com o fundo ainda visível, penso só em dar uma escurecida (um plano preto semitransparente) para ficar claro que o foco está na frente.

Sugestões?

Obrigado, boa páscoa!
Mauricio
Mauricio

Data de inscrição : 13/06/2008
Reputação : 4
Número de Mensagens : 120
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mbg3dmind.wordpress.com/

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por PedroX Dom 08 Abr 2012, 03:03

Você poderia fazer o seguinte:

- Criar uma ds_list.
- Adicionar os elementos de acordo com o depth na posição inicial ou final da lista.
- Ordenar o depth de acordo com os valores da lista. (ds_list_sort ordena a lista, o depth pode ser por loop mesmo)
- Ao clicar, verificar se o elemento está na posição inicial ou final da lista (qual você escolheu acima), se estiver, a ação ocorre.

Obs: essa é uma ideia, se tiver alguma dúvida ou precisar de um exemplo, responde aí.

Até mais!

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6086
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por GameMakerTutoriais Dom 08 Abr 2012, 16:17

Amigo, eu fiz um negócio desses parecido uma vez. O jeito que eu fiz foi colocar uma variável "form_focused" em cada objeto. Quando um form vinha à frente, a variável dessa instância era "true" e das demais "false".

with (all) form_focused := false;
form_focused := true;

Os eventos de clique e teclado eram todos conferidos no step, então eu só coloquei no início dele:

if form_focused = false then exit;

Daí os eventos de quem não é foco não executam, mas foi fácil adaptar porque coloquei tudo no step. Se quiser dar uma olhada, tá tudo aberto, o código cê pode pegar, modificar, olhar, se servir de alguma coisa:

https://gmbr.forumeiros.com/t17196-minilab-ose-project

@Pedro

Agora que eu reparei isso Pedro, meu projeto tá no Hall, mas o concurso de softs foi anulado, lembra? Eu fui pesquisar e vi isso agora.

Falou!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por Mauricio Seg 09 Abr 2012, 01:16

Esse sistema de uma var de controle é o que tinha pensado mesmo, mas a dica do with (all) ajuda bastante!

Vou ter um pouco mais de trabalho para testar pois em alguns casos misturo código com outras partes de ações drag and drop, então só usar "if form_focused = false then exit;" não seria suficiente, vou ter que fazer um bloco de teste entre tudo que existe em cada evento. Mas é tranquilo.


Valeu!
Mauricio
Mauricio

Data de inscrição : 13/06/2008
Reputação : 4
Número de Mensagens : 120
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mbg3dmind.wordpress.com/

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por GameMakerTutoriais Seg 09 Abr 2012, 12:30

Se houvesse alguma forma de saltar um evento inteiro, tipo a action "Exit Event", daria pra fazer uma mudança por código, tudo de uma vez... Mas não sei como fazer isso ou se realmente tem jeito... Boa sorte aí.
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 4 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por Kabeção Seg 09 Abr 2012, 14:13

Nesse caso é só colocar um if em drag e drop com o "Exit event" se form_focused = false for falso.
Ou você usa o with para executar os códigos só no objeto focado.
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por Mauricio Seg 09 Abr 2012, 14:37

Boa, nunca tinha usado a ação "exit event", facilita mais ainda!

Assunto resolvido, valeu pessoal.
Mauricio
Mauricio

Data de inscrição : 13/06/2008
Reputação : 4
Número de Mensagens : 120
Prêmios : Uma janela da frente da room que só ela tenha o foco Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 1 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://mbg3dmind.wordpress.com/

Ir para o topo Ir para baixo

Uma janela da frente da room que só ela tenha o foco Empty Re: Uma janela da frente da room que só ela tenha o foco

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos