/Godot 3.2


Inherits: Node2D < CanvasItem < Node < Object

A 2D line.


A line through several points in 2D space.

Note: By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb and ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb.


bool antialiased false
LineCapMode begin_cap_mode 0
Color default_color Color( 0.4, 0.5, 1, 1 )
LineCapMode end_cap_mode 0
Gradient gradient
LineJointMode joint_mode 0
PoolVector2Array points PoolVector2Array(  )
int round_precision 8
float sharp_limit 2.0
Texture texture
LineTextureMode texture_mode 0
float width 10.0
Curve width_curve


void add_point ( Vector2 position, int at_position=-1 )
void clear_points ( )
int get_point_count ( ) const
Vector2 get_point_position ( int i ) const
void remove_point ( int i )
void set_point_position ( int i, Vector2 position )


enum LineJointMode:

  • LINE_JOINT_SHARP = 0 --- The line's joints will be pointy. If sharp_limit is greater than the rotation of a joint, it becomes a bevel joint instead.
  • LINE_JOINT_BEVEL = 1 --- The line's joints will be bevelled/chamfered.
  • LINE_JOINT_ROUND = 2 --- The line's joints will be rounded.

enum LineCapMode:

  • LINE_CAP_NONE = 0 --- Don't draw a line cap.
  • LINE_CAP_BOX = 1 --- Draws the line cap as a box.
  • LINE_CAP_ROUND = 2 --- Draws the line cap as a circle.

enum LineTextureMode:

  • LINE_TEXTURE_NONE = 0 --- Takes the left pixels of the texture and renders it over the whole line.
  • LINE_TEXTURE_TILE = 1 --- Tiles the texture over the line. The texture must be imported with Repeat enabled for it to work properly.
  • LINE_TEXTURE_STRETCH = 2 --- Stretches the texture across the line. Import the texture with Repeat disabled for best results.

Property Descriptions

bool antialiased

Default false
Setter set_antialiased(value)
Getter get_antialiased()

If true, the line's border will be anti-aliased.

LineCapMode begin_cap_mode

Default 0
Setter set_begin_cap_mode(value)
Getter get_begin_cap_mode()

Controls the style of the line's first point. Use LineCapMode constants.

Color default_color

Default Color( 0.4, 0.5, 1, 1 )
Setter set_default_color(value)
Getter get_default_color()

The line's color. Will not be used if a gradient is set.

LineCapMode end_cap_mode

Default 0
Setter set_end_cap_mode(value)
Getter get_end_cap_mode()

Controls the style of the line's last point. Use LineCapMode constants.

Gradient gradient

Setter set_gradient(value)
Getter get_gradient()

The gradient is drawn through the whole line from start to finish. The default color will not be used if a gradient is set.

LineJointMode joint_mode

Default 0
Setter set_joint_mode(value)
Getter get_joint_mode()

The style for the points between the start and the end.

PoolVector2Array points

Default PoolVector2Array(  )
Setter set_points(value)
Getter get_points()

The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.

int round_precision

Default 8
Setter set_round_precision(value)
Getter get_round_precision()

The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.

float sharp_limit

Default 2.0
Setter set_sharp_limit(value)
Getter get_sharp_limit()

The direction difference in radians between vector points. This value is only used if joint mode is set to LINE_JOINT_SHARP.

Texture texture

Setter set_texture(value)
Getter get_texture()

The texture used for the line's texture. Uses texture_mode for drawing style.

LineTextureMode texture_mode

Default 0
Setter set_texture_mode(value)
Getter get_texture_mode()

The style to render the texture on the line. Use LineTextureMode constants.

float width

Default 10.0
Setter set_width(value)
Getter get_width()

The line's width.

Curve width_curve

Setter set_curve(value)
Getter get_curve()

The line's width varies with the curve. The original width is simply multiply by the value of the Curve.

Method Descriptions

void add_point ( Vector2 position, int at_position=-1 )

Adds a point at the position. Appends the point at the end of the line.

If at_position is given, the point is inserted before the point number at_position, moving that point (and every point after) after the inserted point. If at_position is not given, or is an illegal value (at_position < 0 or at_position >= [method get_point_count]), the point will be appended at the end of the point list.

void clear_points ( )

Removes all points from the line.

int get_point_count ( ) const

Returns the Line2D's amount of points.

Vector2 get_point_position ( int i ) const

Returns point i's position.

void remove_point ( int i )

Removes the point at index i from the line.

void set_point_position ( int i, Vector2 position )

Overwrites the position in point i with the supplied position.

© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.