Как получить позицию другого объекта в gdscript? - PullRequest
0 голосов
/ 09 июля 2020

У меня есть игрок, и я хочу иметь возможность определять, когда они находятся рядом с мячом, чтобы они могли нажать «E», чтобы ударить его.

Я новичок в Годо и, вероятно, просто тупой, но я не могу понять, как получить положение другого объекта.

У меня есть 3 отдельные сцены: MainScene (Node2D), Player (KinematicBody2D) и Ball (RigidBody2D). Я хочу прикрепить сценарий к одной из сцен, который определяет, насколько близко игрок находится к мячу, чтобы они могли его пнуть.

Я не уверен, должен ли я прикреплять сценарий к MainScene, Player сцены или сцены с мячом, и, честно говоря, я не совсем уверен, как должен выглядеть код. Я не очень хорошо знаком с функциями, и иерархия узлов / сцен немного сбивает с толку.

Я знаком с Python, я просто думаю, что меня переполняет этот движок (я впервые использую игровой движок), и мне трудно понять его.

Любая помощь будет принята с благодарностью! чтобы выяснить, как остановить движение объекта RigidBody2D, пока игрок не нажмет на нем букву «E», чтобы пнуть его!

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Для этого вам нужен Area2D, специально созданный для «обнаружения близлежащих объектов» без взаимодействия с ними с точки зрения физики. Сделайте Area2D дочерним элементом узла Player и подключите узел Player к этому сигналу Area2D body_entered. Вот руководство по использованию Area2D для получения дополнительной информации; это руководство также содержит ссылки на различные другие руководства, которые могут быть полезны.

0 голосов
/ 09 июля 2020

я думаю, вы можете использовать функцию

get_overlapping_bodies() 

(узла Area2D) для обнаружения других областей или тела

...