Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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
处的点的位置。