在光标处画一条线尾|戈多

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

我正在尝试在光标处结束一行。但这不起作用。 有窗 全屏

如您所见,蓝线并未在光标处结束

这是我的代码:

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”时,我都会打印慕斯坐标以及应该位于光标上的结束线点坐标。您可以在窗口图像上看到这些坐标是相同的

一开始差异更加明显

之前

这是因为鼠标的坐标和点的坐标不具有相同的原点(第一个为左上角,第二个为屏幕中心)

godot godot4
1个回答
0
投票

坐标不仅具有不同的原点,还可以具有不同的比例和旋转。

在这种情况下(让

Line2D
根据鼠标位置向自身添加点),我建议改用
get_local_mouse_position

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