Estou tentando fazer o fim de uma linha no cursor. Mas não funciona.
Com janela:
Tela cheia:
Como você pode ver, a linha azul não termina no cursor.
Aqui está meu código para isso:
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])
A linha é uma criança de uma Área 2d Assim (que tem um sprite 2d como filho correspondente ao edifício em um quadrado. Aqui está toda a construção
Cada vez que a função '_process' é chamada, eu imprimo as coordenadas do mousse e as coordenadas do ponto final que devem estar no cursor. Você pode ver na imagem da janela que essas coordenadas são as mesmas
No começo a diferença era bem mais visível. Antes:
Isso ocorreu porque as coordenadas do mouse e do ponto não têm a mesma origem (canto superior esquerdo para o primeiro e centro da tela para o segundo).