Line2D¶
Inherits: Node2D < CanvasItem < Node < Object
A 2D line.
Description¶
A line through several points in 2D space. Supports varying width and color over the line's length, texturing, and several cap/joint types.
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.
Tutorials¶
Properties¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Methods¶
void |
|
void |
clear_points ( ) |
get_point_count ( ) const |
|
get_point_position ( int index ) const |
|
void |
remove_point ( int index ) |
void |
set_point_position ( int index, Vector2 position ) |
Enumerations¶
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 |
|
Setter |
set_antialiased(value) |
Getter |
get_antialiased() |
If true
, the line's border will attempt to perform antialiasing by drawing thin OpenGL smooth lines on the line's edges.
Note: Line2D is not accelerated by batching if antialiased is true
.
Note: Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.
LineCapMode begin_cap_mode
Default |
|
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 |
|
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 |
|
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 |
|
Setter |
set_joint_mode(value) |
Getter |
get_joint_mode() |
The style for the points between the start and the end.
PoolVector2Array points
Default |
|
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 |
|
Setter |
set_round_precision(value) |
Getter |
get_round_precision() |
The smoothness of the rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. This is only used if a cap or joint is set as round.
Note: The default value is tuned for lines with the default width. For thin lines, this value should be reduced to a number between 2
and 4
to improve performance.
float sharp_limit
Default |
|
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 |
|
Setter |
set_texture_mode(value) |
Getter |
get_texture_mode() |
The style to render the texture
on the line. Use LineTextureMode constants.
float width
Default |
|
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¶
Adds a point with the specified position
relative to the line's own position. Appends the new point at the end of the point list.
If index
is given, the new point is inserted before the existing point identified by index index
. Every existing point starting from index
is shifted further down the list of points. The index must be greater than or equal to 0
and must not exceed the number of existing points in the line. See get_point_count.
void clear_points ( )
Removes all points from the line.
int get_point_count ( ) const
Returns the amount of points in the line.
Returns the position of the point at index index
.
void remove_point ( int index )
Removes the point at index index
from the line.
Overwrites the position of the point at index index
with the supplied position
.