Godot:获取全局位置未获得正确位置

  • 本文关键字:位置 获取 全局 Godot godot
  • 更新时间 :
  • 英文 :


我正在尝试制作一种运动地图,所有的点都是通过线连接的。但是相邻的点是唯一连接的点,这就是我要做的。然而,每当我试图在两点之间画一条线时,线就在那里,但它们的方向与我想要的方向完全不同。我一直在使用get_global_position来获取行开始和结束的位置。下面是我的场景代码:

extends Area2D
var point_a = self.get_global_position()
var point_b = 0
var draw_line = false
func _process(delta):
var overlapping_areas = get_overlapping_areas()

for area in overlapping_areas:
if area.is_in_group("Location"):
point_b = area.get_global_position()

draw_line = true

update()

func _draw():
if draw_line:
draw_line(point_a, point_b, Color(1, 1, 1, 1), 2)

draw_line = false

我是Godot和编码的新手,所以可能有些东西我只是错过了。

_draw函数绘制节点的本地空间,而不是全局空间。因此,一个有效的解决方案是:

func _draw():
if draw_line:
draw_line(to_local(point_a), to_local(point_b), Color(1, 1, 1, 1), 2)

draw_line = false

最新更新