Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» 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
Ajuda com Mouse Enter/Leave
3 participantes
Página 1 de 1
Ajuda com Mouse Enter/Leave
To com um problema aqui que ta rachando a cuca e não achei solução, peço ajuda de vcs amigos:
Tenho um sistema de inventário básico:
1 - Ele cria via gml os slots, cada slot tem seu id, seu nome, preço, etc...
obj_control / Create
2 - Aí eu tenho um objeto que exibe a informação quando passa o mouse em cima de cada slot:
obj_item_descr / Draw
3 - Aqui é o evento mouse_enter para cada slot lá do item (1)
obj_slot / Mouse Enter - Ele exibe o texto mostrando o preço do item
4 - E o mouse leave:
obj_slot / Mouse Leave - Ele oculta o texto se estiver algum sendo exibido
Onde está a zica?
Acontece que ele executa primeiro o Mouse Enter do próximo slot, e depois o Mouse Leave do antigo.
Isso faz com que o passo 3 seja anulado com o passo 4.
Deu pra entender ai mais ou menos?
Alguem sabe como resolvo isso, por favor?
Tenho um sistema de inventário básico:
1 - Ele cria via gml os slots, cada slot tem seu id, seu nome, preço, etc...
obj_control / Create
- Código:
for (i = 0; i <= 4; i += 1){
for (j = 0; j <= 6; j += 1){
xx = 120 + (i * 32)
yy = 120 + (j * 32)
obj[i,j] = instance_create(xx,yy,obj_slot)
obj[i,j].preco = random(2000)
}
}
2 - Aí eu tenho um objeto que exibe a informação quando passa o mouse em cima de cada slot:
obj_item_descr / Draw
- Código:
draw_set_halign(fa_center)
draw_sprite(sprite_index,0,x,y)
draw_set_color(c_white)
draw_text( x + (sprite_get_width(sprite_index) / 2), y + 4, texto)
3 - Aqui é o evento mouse_enter para cada slot lá do item (1)
obj_slot / Mouse Enter - Ele exibe o texto mostrando o preço do item
- Código:
with obj_item_descr{
instance_destroy()
}
instance_create(120 + (5 * 32),120,obj_item_descr)
obj_item_descr.texto = preco
4 - E o mouse leave:
obj_slot / Mouse Leave - Ele oculta o texto se estiver algum sendo exibido
- Código:
//show_message("MOUSE LEAVE ID:" + string(id))
with obj_item_descr{
instance_destroy()
}
Onde está a zica?
Acontece que ele executa primeiro o Mouse Enter do próximo slot, e depois o Mouse Leave do antigo.
Isso faz com que o passo 3 seja anulado com o passo 4.
Deu pra entender ai mais ou menos?
Alguem sabe como resolvo isso, por favor?
chicoweb- Games Ranking :
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: Ajuda com Mouse Enter/Leave
E se o obj_item_descr estivesse sempre "vivo" e fosse visível somente quando o mouse estiver em colisão com um slot ? (use collision_point com mouse_x e mouse_y)
E no step desse obj_item_descr ele pegasse as informações do slot que está em colisão ?
Acho que seria uma lógica que não teria esse problema de ordem de eventos.
E no step desse obj_item_descr ele pegasse as informações do slot que está em colisão ?
Acho que seria uma lógica que não teria esse problema de ordem de eventos.
fredcobain- Games Ranking :
Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios :
x 0 x 3 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Ajuda com Mouse Enter/Leave
fred Tentei fazer o que vc sugeriu, só que eu preferi usar o position_meeting do que o colision_point.
Coloquei isso no step do obj_slot
Só que como isso é executado para cada instancia do obj_slot os outros objetoda da room entendem que o else deles é que tá funcionando, assim anula tb o instance-create anterior.
Na verdade eu já resolvi o problema, mas foi uma gambiarra tão fácil e rápida que vai ser a solução definitiva kkkk
Solução:
No projeto inicial, dentro do obj_slot, eu coloquei um alarm0
E dentro desse alarm0 eu transferi o seguinte código que estava no mouse enter:
e Dentro do mouse enter eu so coloquei isso:
kkkkk acredite funcionando perfeitamente, eu apenas dei um atraso para ele não pegar primeiro a função leave do objeto anterior.
Coloquei isso no step do obj_slot
- Código:
if position_meeting(mouse_x,mouse_y,self){
with obj_item_descr{
instance_destroy()
}
instance_create(120 + (5 * 32),120,obj_item_descr)
obj_item_descr.texto = preco
}else{
with obj_item_descr{
instance_destroy()
}
}
Só que como isso é executado para cada instancia do obj_slot os outros objetoda da room entendem que o else deles é que tá funcionando, assim anula tb o instance-create anterior.
Na verdade eu já resolvi o problema, mas foi uma gambiarra tão fácil e rápida que vai ser a solução definitiva kkkk
Solução:
No projeto inicial, dentro do obj_slot, eu coloquei um alarm0
E dentro desse alarm0 eu transferi o seguinte código que estava no mouse enter:
- Código:
with obj_item_descr{
instance_destroy()
}
instance_create(120 + (5 * 32),120,obj_item_descr)
obj_item_descr.texto = preco
e Dentro do mouse enter eu so coloquei isso:
- Código:
alarm[0] = 1
kkkkk acredite funcionando perfeitamente, eu apenas dei um atraso para ele não pegar primeiro a função leave do objeto anterior.
chicoweb- Games Ranking :
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: Ajuda com Mouse Enter/Leave
Nossa, gambiarra mesmo kkkk
Mas, como diz Maquiavel: "O fim justifica os meios"
Obs: Na minha sugestão não precisava criar e destruir os objetos, só mexer na visibilidade e no valor deles.
=)
Mas, como diz Maquiavel: "O fim justifica os meios"
Obs: Na minha sugestão não precisava criar e destruir os objetos, só mexer na visibilidade e no valor deles.
=)
fredcobain- Games Ranking :
Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios :
x 0 x 3 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Ajuda com Mouse Enter/Leave
A gambiarra virou solução mesmo kkkk
Não pode fred, porque haveria momentos do game que apareceriam duas txt ao mesmo tempo, sei q isso é relativo no meu game aconteceria sim.
Por isso a necessidade de destruir e criar novamente, entendeu?
obs: tem um script q usa tanto para itens no chao quanto para itens no inventario, por isso quero uma uma coisa so t´ligado
- Código:
Obs: Na minha sugestão não precisava criar e destruir os objetos, só mexer na visibilidade e no valor deles.
=)
Não pode fred, porque haveria momentos do game que apareceriam duas txt ao mesmo tempo, sei q isso é relativo no meu game aconteceria sim.
Por isso a necessidade de destruir e criar novamente, entendeu?
obs: tem um script q usa tanto para itens no chao quanto para itens no inventario, por isso quero uma uma coisa so t´ligado
chicoweb- Games Ranking :
Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: Ajuda com Mouse Enter/Leave
Você poderia fazer assim:
mouse enter:
infor=instance_create(120 + (5 * 32),120,obj_item_descr)
infor.texto = preco
mouse leave:
if instance_exists(infor)
{with(infor)
{instance_destroy()}}
Era isso que você queria?
mouse enter:
infor=instance_create(120 + (5 * 32),120,obj_item_descr)
infor.texto = preco
mouse leave:
if instance_exists(infor)
{with(infor)
{instance_destroy()}}
Era isso que você queria?
Tanker GT- Games Ranking :
Notas recebidas : C
Data de inscrição : 08/10/2011
Reputação : 11
Número de Mensagens : 106
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Ajuda com o mouse
» Mouse Enter, and Over !
» [Resolvido]Problema com 'mouse enter'
» Ajuda com RPG do mouse
» [ajuda] Mouse USB
» Mouse Enter, and Over !
» [Resolvido]Problema com 'mouse enter'
» Ajuda com RPG do mouse
» [ajuda] Mouse USB
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos