Line2D

    A 2D line.

    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 and ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb.

    Tutorials

    Methods

    void

    add_point ( position, int at_position=-1 )

    void

    ( )

    int

    ( ) const

    Vector2

    ( int i ) const

    void

    ( int i )

    void

    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.


    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

    • antialiased

    Default

    false

    Setter

    set_antialiased(value)

    Getter

    get_antialiased()

    If , 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 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.


    Default

    0

    Setter

    set_begin_cap_mode(value)

    Getter

    get_begin_cap_mode()

    Controls the style of the line’s first point. Use constants.


    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.


    • end_cap_mode

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


    • 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.


    Default

    0

    Setter

    set_joint_mode(value)

    Getter

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


    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.


    • round_precision

    Default

    8

    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.


    • sharp_limit

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


    Setter

    set_texture(value)

    Getter

    get_texture()

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


    • texture_mode

    Default

    Setter

    set_texture_mode(value)

    Getter

    get_texture_mode()

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


    • width

    Default

    10.0

    Setter

    set_width(value)

    Getter

    get_width()

    The line’s width.


    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.

    • void add_point ( Vector2 position, 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.


    • get_point_position ( int i ) const

    Returns point i‘s position.



    • void set_point_position ( i, Vector2 position )

    Overwrites the position in point i with the supplied .