Годо, как программно получить слой столкновения сталкивающихся объектов?

У меня есть 3 слоя столкновения:

  1. Игрок
  2. Монета
  3. Враг

Мои узлы хорошо сталкиваются, но когда мой игрок сталкивается с монетой или врагом, я не могу различить их. Обычно я бы делал это, устанавливая группы столкновений, но если слои уже установлены, может быть проще проверить слой.

Возможное решение с использованием групп

func _on_Player_area_entered(area):
  if area.is_in_group('enemies'):
    pass
  if area.is_in_group('coins'):
    pass

Как я могу программно получить слои столкновения Coin и Enemy, когда они сталкиваются с Player?


person jogarcia    schedule 08.12.2020    source источник


Ответы (1)


Я думаю, что лучший способ - просто сделать то, что вы предложили: поместить монеты и врагов в их собственные группы узлов, а затем выполнить is_in_group проверку в вашем коде столкновения.

Если вы хотите избежать групп узлов, другой способ добиться этого - создать отдельный Area2D узел в вашей сцене Player, который будет сталкиваться только с монетами, в то время как другой Area2D сталкивается с врагами.

person Martin    schedule 08.12.2020