如何在 gdscript 中获取不同对象的位置?

How to get the position of a different object in gdscript?

我有一个球员,我希望能够检测到他们何时靠近球,以便他们可以按 'E' 踢球。

我是 godot 的新手,我可能只是很笨,但我不知道如何获取另一个对象的位置。

我有 3 个独立的场景:MainScene(Node2D)、Player(KinematicBody2D) 和 Ball(RigidBody2D)。我想将脚本附加到其中一个场景,以检测玩家离球有多近,以便他们可以踢球。

我不确定是否应该将脚本附加到 MainScene、Player 场景或 Ball 场景,老实说,我不完全确定代码应该是什么样子。我不是很熟悉这些功能,node/scene 层次结构有点混乱。

我对 Python 很熟悉,我只是觉得我对这个引擎不知所措(这是我第一次使用游戏引擎)并且我很难掌握它。

如有任何帮助,我们将不胜感激!

支线任务:如果你觉得有额外帮助,我还需要弄清楚如何阻止 RigidBody2D 对象移动,直到玩家点击 'E' 踢它!

为此,您需要一个 Area2D,它专为“检测附近的物体”而设计,无需与它们进行物理交互。将 Area2D 作为 Player 节点的子节点,并将 Player 节点连接到 Area2Dbody_entered 信号。 Here's a tutorial on using Area2D 了解更多信息;本教程还链接到可能有用的其他各种教程。

我想你可能会使用函数

get_overlapping_bodies() 

(Area2D 节点的)用于检测另一个区域或 body