Hola Visitante

[SOLUCIONADO] Cómo discriminar objetos al colisionar?

  • 3 Respuestas
  • 892 Vistas
*

Kash

  • *
  • 4
  • +2/-0
    • Ver Perfil
[SOLUCIONADO] Cómo discriminar objetos al colisionar?
« en: 31 de Julio del 2017, 19:34 »
Estoy programando un shooter de naves, básicamente. Y para checkear las collisiones entre el player y las balas enemigas, utilizo en ambos nodos, Areas2D.
El checkeo de la colision la hago desde el jugador, puesto que me parece que se hacen menos bucles de verificación qué, si lo hiciera desde cada bala.

El problema que tengo es que necesito, saber cuándo está colisionando una bala y no otro objeto, por ejemplo una vida, un power up. ¿Cómo puedo saber el tipo de objeto con el que esta colisionando mi player?
« Última modificación: 05 de Septiembre del 2017, 14:35 por Capa »

*

MarianoGNU

  • *
  • 3
  • +3/-0
    • Ver Perfil
Re:Cómo discriminar objetos al colisionar?
« Respuesta #1 en: 31 de Julio del 2017, 21:51 »
para esto conviene usar grupos:

en el script del enemigo:
Código: [Seleccionar]
func _init():
add_to_group("enemigo") #esto suponiendo que el script esta asignado al Area2D, sino usar area.add_to_group()
en el script de la bala enemiga:
Código: [Seleccionar]
func _init():
add_to_group("bala_enemiga") #esto suponiendo que el script esta asignado al Area2D, sino usar area.add_to_group()
en el power_up:
Código: [Seleccionar]
func _init():
add_to_group("perk") #esto suponiendo que el script esta asignado al Area2D, sino usar area.add_to_group()

luego en el player

en el script del enemigo:
Código: [Seleccionar]
func _area_enter(area):
if area.is_in_group("enemigo") or area.is_in_group("bala_enemiga"):
recibir_daño
elif area.is_in_group("perk")
aplicar_perk(area)

*

Kash

  • *
  • 4
  • +2/-0
    • Ver Perfil
Re:Cómo discriminar objetos al colisionar?
« Respuesta #2 en: 01 de Agosto del 2017, 01:14 »
Muchas gracias colega!
hice alguna que otra modificación pero la respuesta es justo lo que necesitaba :D

*

willer69

  • *
  • 26
  • +3/-0
    • Ver Perfil
Re:[RESUELTO]Cómo discriminar objetos al colisionar?
« Respuesta #3 en: 04 de Agosto del 2017, 02:58 »
Marco como resuelto. Felicidades.