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:
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.
LineJointMode LINE_JOINT_BEVEL = 1
The line's joints will be bevelled/chamfered.
LineJointMode LINE_JOINT_ROUND = 2
The line's joints will be rounded.
enum LineCapMode:
LineCapMode LINE_CAP_NONE = 0
Don't draw a line cap.
LineCapMode LINE_CAP_BOX = 1
Draws the line cap as a box.
LineCapMode LINE_CAP_ROUND = 2
Draws the line cap as a circle.
enum LineTextureMode:
LineTextureMode LINE_TEXTURE_NONE = 0
Takes the left pixels of the texture and renders it over the whole line.
LineTextureMode LINE_TEXTURE_TILE = 1
Tiles the texture over the line. The texture must be imported with Repeat enabled for it to work properly.
LineTextureMode LINE_TEXTURE_STRETCH = 2
Stretches the texture across the line. Import the texture with Repeat disabled for best results.
Property Descriptions¶
bool antialiased = false
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 = 0
void set_begin_cap_mode ( LineCapMode value )
LineCapMode get_begin_cap_mode ( )
Controls the style of the line's first point. Use LineCapMode constants.
Color default_color = Color( 0.4, 0.5, 1, 1 )
The line's color. Will not be used if a gradient is set.
LineCapMode end_cap_mode = 0
void set_end_cap_mode ( LineCapMode value )
LineCapMode get_end_cap_mode ( )
Controls the style of the line's last point. Use LineCapMode constants.
Gradient 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 = 0
void set_joint_mode ( LineJointMode value )
LineJointMode get_joint_mode ( )
The style for the points between the start and the end.
PoolVector2Array points = PoolVector2Array( )
void set_points ( PoolVector2Array value )
PoolVector2Array 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 = 8
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 = 2.0
The direction difference in radians between vector points. This value is only used if joint_mode is set to LINE_JOINT_SHARP.
Texture texture
The texture used for the line's texture. Uses texture_mode
for drawing style.
LineTextureMode texture_mode = 0
void set_texture_mode ( LineTextureMode value )
LineTextureMode get_texture_mode ( )
The style to render the texture
on the line. Use LineTextureMode constants.
float width = 10.0
The line's width.
Curve width_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 index=-1 )
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.
Vector2 get_point_position ( int index ) const
Returns the position of the point at index index
.
void remove_point ( int index )
Removes the point at index index
from the line.
void set_point_position ( int index, Vector2 position )
Overwrites the position of the point at index index
with the supplied position
.