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
» 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

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

- Tópicos semelhantes

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