Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Line2D¶
Inherits: Node2D < CanvasItem < Node < Object
A 2D polyline that can optionally be textured.
Description¶
This node draws a 2D polyline, i.e. a shape consisting of several points connected by segments. Line2D is not a mathematical polyline, i.e. the segments are not infinitely thin. It is intended for rendering and it can be colored and optionally textured.
Warning: Certain configurations may be impossible to draw nicely, such as very sharp angles. In these situations, the node uses fallback drawing logic to look decent.
Note: Line2D is drawn using a 2D mesh.
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
Makes the polyline's joints pointy, connecting the sides of the two segments by extending them until they intersect. If the rotation of a joint is too big (based on sharp_limit), the joint falls back to LINE_JOINT_BEVEL to prevent very long miters.
LineJointMode LINE_JOINT_BEVEL = 1
Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line.
LineJointMode LINE_JOINT_ROUND = 2
Makes the polyline's joints rounded, connecting the sides of the two segments with an arc. The detail of this arc depends on round_precision.
enum LineCapMode:
LineCapMode LINE_CAP_NONE = 0
Draws no line cap.
LineCapMode LINE_CAP_BOX = 1
Draws the line cap as a box, slightly extending the first/last segment.
LineCapMode LINE_CAP_ROUND = 2
Draws the line cap as a semicircle attached to the first/last segment.
enum LineTextureMode:
LineTextureMode LINE_TEXTURE_NONE = 0
Takes the left pixels of the texture and renders them over the whole polyline.
LineTextureMode LINE_TEXTURE_TILE = 1
Tiles the texture over the polyline. CanvasItem.texture_repeat of the Line2D node must be CanvasItem.TEXTURE_REPEAT_ENABLED or CanvasItem.TEXTURE_REPEAT_MIRROR for it to work properly.
LineTextureMode LINE_TEXTURE_STRETCH = 2
Stretches the texture across the polyline. CanvasItem.texture_repeat of the Line2D node must be CanvasItem.TEXTURE_REPEAT_DISABLED for best results.
Property Descriptions¶
bool antialiased = false
If true
, the polyline's border will be anti-aliased.
Note: Line2D is not accelerated by batching when being anti-aliased.
LineCapMode begin_cap_mode = 0
void set_begin_cap_mode ( LineCapMode value )
LineCapMode get_begin_cap_mode ( )
The style of the beginning of the polyline, if closed is false
. Use LineCapMode constants.
bool closed = false
If true
and the polyline has more than 2 points, the last point and the first one will be connected by a segment.
Note: The shape of the closing segment is not guaranteed to be seamless if a width_curve is provided.
Note: The joint between the closing segment and the first segment is drawn first and it samples the gradient and the width_curve at the beginning. This is an implementation detail that might change in a future version.
Color default_color = Color(1, 1, 1, 1)
The color of the polyline. 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 ( )
The style of the end of the polyline, if closed is false
. 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 this property is set.
LineJointMode joint_mode = 0
void set_joint_mode ( LineJointMode value )
LineJointMode get_joint_mode ( )
The style of the connections between segments of the polyline. Use LineJointMode constants.
PackedVector2Array points = PackedVector2Array()
void set_points ( PackedVector2Array value )
PackedVector2Array get_points ( )
The points of the polyline, interpreted in local 2D coordinates. Segments are drawn between the adjacent points in this array.
int round_precision = 8
The smoothness used for rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update.
float sharp_limit = 2.0
Determines the miter limit of the polyline. Normally, when joint_mode is set to LINE_JOINT_SHARP, sharp angles fall back to using the logic of LINE_JOINT_BEVEL joints to prevent very long miters. Higher values of this property mean that the fallback to a bevel joint will happen at sharper angles.
Texture2D texture
The texture used for the polyline. 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 of the polyline. Use LineTextureMode constants.
float width = 10.0
The polyline's width.
Curve width_curve
The polyline's width curve. The width of the polyline over its length will be equivalent to the value of the width curve over its domain.
Method Descriptions¶
void add_point ( Vector2 position, int index=-1 )
Adds a point with the specified position
relative to the polyline's own position. If no