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
» Colisões não funcionando
por RastaMaan Ontem à(s) 19:49

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Ontem à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

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

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

» 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


Ajuda com Mouse Enter/Leave

3 participantes

Ir para baixo

Ajuda com Mouse Enter/Leave Empty Ajuda com Mouse Enter/Leave

Mensagem por chicoweb Qua 26 Mar 2014, 11:12

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:

Ajuda com Mouse Enter/Leave B55soy

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
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Ajuda com Mouse Enter/Leave 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

Ir para o topo Ir para baixo

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por fredcobain Qua 26 Mar 2014, 14:09

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.
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : Ajuda com Mouse Enter/Leave Empty

Medalhas x 0 Tutoriais x 3 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

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por chicoweb Qua 26 Mar 2014, 16:13

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


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
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Ajuda com Mouse Enter/Leave 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

Ir para o topo Ir para baixo

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por fredcobain Qua 26 Mar 2014, 16:52

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.
=)
fredcobain
fredcobain

Games Ranking : Sem avaliações

Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios : Ajuda com Mouse Enter/Leave Empty

Medalhas x 0 Tutoriais x 3 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

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por chicoweb Qui 27 Mar 2014, 22:20

A gambiarra virou solução mesmo kkkk

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
chicoweb

Games Ranking : Nota C

Notas recebidas : B+C
Data de inscrição : 15/05/2012
Reputação : 49
Número de Mensagens : 675
Prêmios : Ajuda com Mouse Enter/Leave 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

Ir para o topo Ir para baixo

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por Tanker GT Qui 27 Mar 2014, 22:37

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?
Tanker GT
Tanker GT

Games Ranking : Nota C

Notas recebidas : C
Data de inscrição : 08/10/2011
Reputação : 11
Número de Mensagens : 106
Prêmios : Ajuda com Mouse Enter/Leave 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

Ir para o topo Ir para baixo

Ajuda com Mouse Enter/Leave Empty Re: Ajuda com Mouse Enter/Leave

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


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