Line2D
继承: Node2D < CanvasItem < Node < Object
可以选择设置纹理的 2D 折线。
描述
该节点绘制一条 2D 折线,即由多个线段连接的点组成的形状。Line2D 不是数学折线,即线段不是无限细的。它用于渲染,且可以被着色,也可以选择纹理。
警告:某些配置可能无法很好地绘制,例如非常锐利的角度。在这些情况下,节点使用后备绘制逻辑来看起来不错。
注意:**Line2D** 使用 2D 网格进行绘制。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
方法
void | |
void | |
get_point_count() const | |
get_point_position(index: int) const | |
void | remove_point(index: int) |
void | set_point_position(index: int, position: Vector2) |
枚举
enum LineJointMode: 🔗
LineJointMode LINE_JOINT_SHARP = 0
使该折线的接头变尖,通过延伸两条线段直至它们相交来连接它们的侧面。如果关节的旋转太大(基于 sharp_limit),关节将回落到 LINE_JOINT_BEVEL 以防止出现过长的斜角。
LineJointMode LINE_JOINT_BEVEL = 1
使折线的接头倾斜/倒角,用一条简单的线连接两个线段的侧面。
LineJointMode LINE_JOINT_ROUND = 2
使该折线的接头变圆,用圆弧连接两条线段的侧面。该弧的细节取决于 round_precision。
enum LineCapMode: 🔗
LineCapMode LINE_CAP_NONE = 0
不绘制线条端点。
LineCapMode LINE_CAP_BOX = 1
将线帽绘制为方框,稍微延伸第一段/最后一段。
LineCapMode LINE_CAP_ROUND = 2
将线帽绘制为连接到第一条/最后一条线段的半圆。
enum LineTextureMode: 🔗
LineTextureMode LINE_TEXTURE_NONE = 0
获取纹理的左侧像素并将它们渲染在整条折线上。
LineTextureMode LINE_TEXTURE_TILE = 1
将纹理平铺在该折线上。该 Line2D 节点的 CanvasItem.texture_repeat 必须为 CanvasItem.TEXTURE_REPEAT_ENABLED 或 CanvasItem.TEXTURE_REPEAT_MIRROR,才能正常工作。
LineTextureMode LINE_TEXTURE_STRETCH = 2
沿该折线拉伸纹理。为了获得最佳效果,Line2D 节点的 CanvasItem.texture_repeat 必须为 CanvasItem.TEXTURE_REPEAT_DISABLED。
属性说明
如果为 true
,则折线的边界将使用抗锯齿。
注意:**Line2D** 在使用抗锯齿时,不会通过批处理来加速。
LineCapMode begin_cap_mode = 0
🔗
void set_begin_cap_mode(value: LineCapMode)
LineCapMode get_begin_cap_mode()
closed 为 false
时的折线开头样式。使用 LineCapMode 常量。
如果为 true
并且折线有超过2个点,则最后一个点和第一个点将通过线段连接。
注意:如果提供了 width_curve,则不保证闭合线段的形状是无缝的。
注意:首先绘制结束线段和第一条线段之间的连接点,并在开始时对 gradient 和 width_curve 进行采样。这是在未来版本中可能会更改的实现细节。
Color default_color = Color(1, 1, 1, 1)
🔗
折线的颜色。如果设置了渐变,则不会被使用。
LineCapMode end_cap_mode = 0
🔗
void set_end_cap_mode(value: LineCapMode)
LineCapMode get_end_cap_mode()
closed 为 false
时的折线末端样式。使用 LineCapMode 常量。
渐变是从头到尾贯穿整条线绘制的。如果该属性被设置,则 default_color 不会被使用。
LineJointMode joint_mode = 0
🔗
void set_joint_mode(value: LineJointMode)
LineJointMode get_joint_mode()
折线段之间的连接样式。使用 LineJointMode 常量。
PackedVector2Array points = PackedVector2Array()
🔗
void set_points(value: PackedVector2Array)
PackedVector2Array get_points()
折线的点,以局部 2D 坐标解释。在该数组中的相邻点之间绘制线段。
Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.
用于圆形接头和端盖的光滑度。值越高,边角越平滑,但对渲染和更新的要求更高。
确定该折线的斜接限制。通常,当 joint_mode 被设置为 LINE_JOINT_SHARP 时,锐角会回退到使用 LINE_JOINT_BEVEL 关节的逻辑来防止过长的斜接。该属性的值越高意味着倒角接头的回退将以更锐利的角度发生。
用于折线的纹理。使用 texture_mode 作为绘图样式。
LineTextureMode texture_mode = 0
🔗
void set_texture_mode(value: LineTextureMode)
LineTextureMode get_texture_mode()
渲染该折线的 texture 的样式。使用 LineTextureMode 常量。
多边形的宽度。
该折线的宽度曲线。该折线在其长度上的宽度将等于宽度曲线在其域上的值。
方法说明
void add_point(position: Vector2, index: int = -1) 🔗
在指定的位置 position
添加一个点,该位置相对于该线段自身的位置。如果未提供 index
,则新的点将被添加到点数组的末尾。
如果给出 index
,则将新点插入到由索引 index
标识的已有点之前。该新点之后的点的索引增加 1。提供的 index
不得超过折线中已有点的数量。请参阅 get_point_count。
void clear_points() 🔗
从折线中移除所有点,使其为空。
返回该折线中的点的数量。
Vector2 get_point_position(index: int) const 🔗
返回索引为 index
的点的位置。
void remove_point(index: int) 🔗
移除该折线中索引为 index
的点。
void set_point_position(index: int, position: Vector2) 🔗
用提供的 position
覆盖给定索引 index
处的点的位置。