如何获取godot中边的中心坐标?

问题描述 投票:0回答:2

我想知道如何获取godot中边缘中心的坐标(如bottomCenter、topcenter等)。

coordinates gdscript godot3
2个回答
0
投票

Godot 没有开箱即用的功能。

根据

Node
的类型(即
Control
vs
Node2D
vs
Spatial
),确定边界会有所不同。

就您而言,作为

Sprite
,我们正在谈论
Node2D
。与
Control
不同,
Node2D
没有固有的大小。

但是,

Sprite
的视觉大小是由它的纹理给出的...所以你可以得到
size
texture
Sprite
并用它来计算你想要的位置。


但是,考虑到您的用例,我将提出不同的建议......

对于生成点,将子项

Position2D
添加到您的场景中,以便您可以将其直观地放置在编辑器上您想要的位置。

然后从您的代码中获取对

Position2D
的引用,读取其
position
(或
global_position
,具体取决于您的生成代码),并使用它来放置生成的对象。

例如,如果您要制作一种发射射弹的武器,您会希望它们出现在武器的尖端,这取决于精灵,而不一定位于角落或边缘中心。在这种情况下,使用可以直观定位且不会扰乱代码的

Position2D
将为您提供更好的工作流程。


0
投票

如果没有更多细节,很难回答这个问题。

这并不完全是您所要求的,但您可以考虑修改 SpriteOffset 属性。这会改变该精灵的绘制位置。

例如,我假设您有一个代表树桩的节点,当您在该树桩的位置添加精灵时,它会将精灵的中心放在树桩节点的位置,可能会穿过地面。 (注:屏幕截图是 Godot 4,但我上面链接的文档是 Godot 3.5)

您可以向树桩添加偏移,它仍然可以沿着地板定位,但绘制在其上方。

© www.soinside.com 2019 - 2024. All rights reserved.