Foro Godot

Búsqueda Avanzada  

Noticias:

[31-07-2017] Creado el foro de Godot Engine en español !!!

Autor Tema: Click en nodos superpuestos  (Leído 211 veces)

Kash

  • Newbie
  • *
  • Karma: +2/-0
  • Mensajes: 4
    • Ver Perfil
Click en nodos superpuestos
« en: 23 de Septiembre del 2017, 08:15 »

Hola estoy programando un juego para android y me preguntaba como solucionar el siguiente error.

Tengo un nodo area2d con su collision shape, que al tocarlo responde bien. El problema es que si hay 2 de estos nodos superuesto (uno encima de otro), responden los 2. Yo solo quisiera que respondiera el que está más encima.

Como puedo lograr eso?
Saludos amigos
En línea

neoloopy

  • Newbie
  • *
  • Karma: +0/-0
  • Mensajes: 1
    • Ver Perfil
Re:Click en nodos superpuestos
« Respuesta #1 en: 25 de Septiembre del 2017, 15:25 »

Hola Kash

Yo estoy haciendo un juego de rol con tablero y estoy usando una serie de dados que los tengo instanciados desde una clase. Bueno, necesitaba que al hacer doble click en uno de ellos se colocaran en su lugar correspondiente y me pasaba los mismo que tú. El problema es que el evento 2click se envia a todos los nodos de la escena y obviamente todos los dados respondian al mismo tiempo para ello use get_tree().set_input_as_handled():

Código: [Seleccionar]
func _on_Area2D_input_event( viewport, event, shape_idx ):
if event.type == InputEvent.MOUSE_BUTTON and self.owner == null:
if event.doubleclick:
if event.is_action_pressed("click_left"):
self.set_owner("player")
# liberamos el evento
# de esta forma no se replica en todos los obj de tipo Dice
get_tree().set_input_as_handled()

Espero te sirva  :D

Happy Hacking!!!
En línea

willer69

  • Newbie
  • *
  • Karma: +3/-0
  • Mensajes: 26
    • Ver Perfil
Re:Click en nodos superpuestos
« Respuesta #2 en: 29 de Septiembre del 2017, 13:56 »

tu problema sería que al estar uno hijo del otro se controlan los dos. Tienen que estar hijos de la escena principal para que los tome individualmente. Espero te sirva sino manda la captura de los nodos como están posicionandos.
En línea