我正在尝试在光标处结束一行。但这不起作用。
窗口化:
全屏:
如您所见,蓝线并未在光标处结束。
这是我的代码:
extends Line2D
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
#gets parent's position
var parent := get_parent()
#sets 2 points for the line
add_point(parent.position)
add_point(parent.position)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
#deletes last position (cursor position)
remove_point(1)
#calculates the new point position
var mousePos := get_global_mouse_position() #gets mouse position
var adjust := get_viewport_rect().size #gets screen
var deltaPos = mousePos - (adjust/2) #Adjust the coordinate (Point's (0,0) is in the middle of the screen while cursor's is on the top left corner)
add_point(Vector2(deltaPos))
print(deltaPos, points[1])
该线是 2d 区域的子项像这样(它有一个 2d 精灵作为子项,对应于正方形中的建筑物。这是所有构建
每次调用函数“_process”时,我都会打印慕斯坐标以及应该位于光标上的结束线点坐标。您可以在窗口图像上看到这些坐标是相同的
起初,差异更加明显。之前:
这是因为鼠标的坐标和点的坐标不具有相同的原点(第一个为左上角,第二个为屏幕中心)。
坐标不仅具有不同的原点,还可以具有不同的比例和旋转。
在这种情况下(让
Line2D
根据鼠标位置向自身添加点),我建议改用 get_local_mouse_position
。