Problem understanding Line2d: stops working from nothing

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By lucasfazzi

Good afternoon my friends.

I have this little character, which is a drag and drop sprite and it produces a line as it is dragged; the drawn line script is on the 2D Line node itself and works fine.
However, sometimes it stops working randomly and does not return to work anymore; could anyone help me to understand my mistake?

Thank you!

the code:

extends Line2D

var target
var point
export (NodePath) var targetPath

func _ready():
	target = get_node(targetPath)
	pass

func _process(delta):
	global_position = Vector2(0,0)
	global_rotation = 0
	point = target.global_position
	add_point(point)

video of issue

I experience the same issue with Godot 3.2.1 stable mono.

When the Line2D reaches 2700 Points, funny things start to happen like in your screenshot and video.

eddex | 2020-05-15 21:35

:bust_in_silhouette: Reply From: lucasfazzi

PS: the TargetPath is the Sprite itself

:bust_in_silhouette: Reply From: lucasfazzi

PS²:

sometimes the last point drawn before the bug returns to the 0,0 position and then stops working. but only sometimes.
I think it’s related to global_position, but I’m not sure what can be done to correct.

image of 0,0 position bug

:bust_in_silhouette: Reply From: eddex

I found the solution to this problem.

In Project Settings go to Rendering > Limits > Buffers and increase the two settings for canvas_polygon_index_buffer_size_kb and canvas_polygon_buffer_size_kb.

The default is 128, which is quite low.

See: Line2D cannot draw more than 4096 points · Issue #21793 · godotengine/godot · GitHub