跳到主要内容

CanvasItem

继承

Node

简要描述

任何二维的基类。

描述

任何二维的基类。

任何CanvasItem都可以绘制。

画布项目以树顺序绘制。

CanvasItem也可以隐藏,这也将隐藏其子级。

最终,可以请求一个转换通知,以在父树发生更改的情况下通知节点其全局位置已更改。

成员

类型属性名默认值
intlight_mask1
Materialmaterial
ColormodulateColor( 1, 1, 1, 1 )
Colorself_modulateColor( 1, 1, 1, 1 )
boolshow_behind_parentfalse
boolshow_on_top
booluse_parent_materialfalse
boolvisibletrue

方法

返回值类型方法名称
void_draw() virtual
voiddraw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = 1.0, antialiased: bool = false)
floatdraw_char(font: Font, position: Vector2, char: String, next: String, modulate: Color = Color( 1, 1, 1, 1 ))
voiddraw_circle(position: Vector2, radius: float, color: Color)
voiddraw_colored_polygon(points: PoolVector2Array, color: Color, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false)
voiddraw_line(from: Vector2, to: Vector2, color: Color, width: float = 1.0, antialiased: bool = false)
voiddraw_mesh(mesh: Mesh, texture: Texture, normal_map: Texture = null, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), modulate: Color = Color( 1, 1, 1, 1 ))
voiddraw_multiline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false)
voiddraw_multiline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false)
voiddraw_multimesh(multimesh: MultiMesh, texture: Texture, normal_map: Texture = null)
voiddraw_polygon(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false)
voiddraw_polyline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false)
voiddraw_polyline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false)
voiddraw_primitive(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array, texture: Texture = null, width: float = 1.0, normal_map: Texture = null)
voiddraw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = 1.0, antialiased: bool = false)
voiddraw_set_transform(position: Vector2, rotation: float, scale: Vector2)
voiddraw_set_transform_matrix(xform: Transform2D)
voiddraw_string(font: Font, position: Vector2, text: String, modulate: Color = Color( 1, 1, 1, 1 ), clip_w: int = -1)
voiddraw_style_box(style_box: StyleBox, rect: Rect2)
voiddraw_texture(texture: Texture, position: Vector2, modulate: Color = Color( 1, 1, 1, 1 ), normal_map: Texture = null)
voiddraw_texture_rect(texture: Texture, rect: Rect2, tile: bool, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: Texture = null)
voiddraw_texture_rect_region(texture: Texture, rect: Rect2, src_rect: Rect2, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: Texture = null, clip_uv: bool = true)
voidforce_update_transform()
RIDget_canvas() const
RIDget_canvas_item() const
Transform2Dget_canvas_transform() const
Vector2get_global_mouse_position() const
Transform2Dget_global_transform() const
Transform2Dget_global_transform_with_canvas() const
Vector2get_local_mouse_position() const
Transform2Dget_transform() const
Rect2get_viewport_rect() const
Transform2Dget_viewport_transform() const
World2Dget_world_2d() const
voidhide()
boolis_local_transform_notification_enabled() const
boolis_set_as_toplevel() const
boolis_transform_notification_enabled() const
boolis_visible_in_tree() const
Vector2make_canvas_position_local(screen_point: Vector2) const
InputEventmake_input_local(event: InputEvent) const
voidset_as_toplevel(enable: bool)
voidset_notify_local_transform(enable: bool)
voidset_notify_transform(enable: bool)
voidshow()
voidupdate()

信号

  • **draw**

CanvasItem必须重绘时发出。


  • **hide**

隐藏时发出。


  • **item_rect_changed**

项目rect更改时发出。


  • **visibility_changed**

当可见性(隐藏/可见)更改时发出。


枚举

enum BlendMode:

  • **BLEND_MODE_MIX = 0**

混合型混合模式。

  • **BLEND_MODE_ADD = 1**

加法混合模式。

  • **BLEND_MODE_SUB = 2**

减法混合模式。

  • **BLEND_MODE_MUL = 3**

乘法混合模式。

  • **BLEND_MODE_PREMULT_ALPHA = 4**

混合混合模式。

  • **BLEND_MODE_DISABLED = 5**

禁用混合模式。


常量

  • **NOTIFICATION_TRANSFORM_CHANGED = 2000**

CanvasItem的变换已更改。

  • **NOTIFICATION_DRAW = 30**

要求绘制CanvasItem

  • **NOTIFICATION_VISIBILITY_CHANGED = 31**

CanvasItem的可见性已更改。

  • **NOTIFICATION_ENTER_CANVAS = 32**

CanvasItem已进入画布。

  • **NOTIFICATION_EXIT_CANVAS = 33**

CanvasItem已退出画布。

成员说明

  • int light_mask
Default1
setterset_light_mask(value)
getterget_light_mask
  • Material material
setterset_material(value)
getterget_material
  • Color modulate
DefaultColor( 1, 1, 1, 1 )
setterset_modulate(value)
getterget_modulate
  • Color self_modulate
DefaultColor( 1, 1, 1, 1 )
setterset_self_modulate(value)
getterget_self_modulate
  • bool show_behind_parent
Defaultfalse
setterset_draw_behind_parent(value)
getteris_draw_behind_parent_enabled
  • bool show_on_top
setter_set_on_top(value)
getter_is_on_top
  • bool use_parent_material
Defaultfalse
setterset_use_parent_material(value)
getterget_use_parent_material
  • bool visible
Defaulttrue
setterset_visible(value)
getteris_visible

方法说明

  • _draw _draw() virtual

引擎调用的可覆盖函数(如果已定义)以绘制画布项目。


  • draw_arc draw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = 1.0, antialiased: bool = false)

在给定角度之间绘制圆弧。


  • draw_char draw_char(font: Font, position: Vector2, char: String, next: String, modulate: Color = Color( 1, 1, 1, 1 ))

使用自定义字体绘制字符串字符。


  • draw_circle draw_circle(position: Vector2, radius: float, color: Color)

画一个彩色的圆圈。


  • draw_colored_polygon draw_colored_polygon(points: PoolVector2Array, color: Color, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false)

绘制任意数量的点(凸或凹)的彩色多边形。


  • draw_line draw_line(from: Vector2, to: Vector2, color: Color, width: float = 1.0, antialiased: bool = false)

用给定的颜色和宽度从2D点到另一点画一条线。


  • draw_mesh draw_mesh(mesh: Mesh, texture: Texture, normal_map: Texture = null, transform: Transform2D = Transform2D( 1, 0, 0, 1, 0, 0 ), modulate: Color = Color( 1, 1, 1, 1 ))

使用提供的纹理在2D中绘制[网格]


  • draw_multiline draw_multiline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false)

用统一的颜色绘制多条平行线。


  • draw_multiline_colors draw_multiline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false)

绘制多条平行线,它们具有统一的width,逐段着色和可选的抗锯齿功能。


  • draw_multimesh draw_multimesh(multimesh: MultiMesh, texture: Texture, normal_map: Texture = null)

使用提供的纹理在2D中绘制MultiMesh


  • draw_polygon draw_polygon(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false)

绘制任意数量的点(凸或凹)的多边形。


  • draw_polyline draw_polyline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false)

用统一的颜色width以及可选的抗锯齿功能绘制互连的线段。


  • draw_polyline_colors draw_polyline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false)

绘制具有均匀width,逐段着色和可选抗锯齿功能的互连线段。


  • draw_primitive draw_primitive(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array, texture: Texture = null, width: float = 1.0, normal_map: Texture = null)

绘制一个自定义图元。


  • draw_rect draw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = 1.0, antialiased: bool = false)

绘制一个矩形。

注意: widthantialiased仅在filledfalse时有效。


  • draw_set_transform draw_set_transform(position: Vector2, rotation: float, scale: Vector2)

设置用于通过组件进行绘制的自定义变换。


  • draw_set_transform_matrix draw_set_transform_matrix(xform: Transform2D)

设置自定义变换以通过矩阵进行绘制。


  • draw_string draw_string(font: Font, position: Vector2, text: String, modulate: Color = Color( 1, 1, 1, 1 ), clip_w: int = -1)

使用自定义字体绘制字符串。


  • draw_style_box draw_style_box(style_box: StyleBox, rect: Rect2)

绘制样式化的矩形。


  • draw_texture draw_texture(texture: Texture, position: Vector2, modulate: Color = Color( 1, 1, 1, 1 ), normal_map: Texture = null)

在给定位置绘制纹理。


  • draw_texture_rect draw_texture_rect(texture: Texture, rect: Rect2, tile: bool, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: Texture = null)

在给定位置绘制带纹理的矩形,可以选择通过颜色进行调制。


  • draw_texture_rect_region draw_texture_rect_region(texture: Texture, rect: Rect2, src_rect: Rect2, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: Texture = null, clip_uv: bool = true)

在给定位置绘制带纹理的矩形区域,可以选择通过颜色进行调制。


  • force_update_transform force_update_transform()

强制转换更新。


  • get_canvas get_canvas() const

返回此项目所在的World2D画布的RID


  • get_canvas_item get_canvas_item() const

返回VisualServer使用的画布项目RID。


  • get_canvas_transform get_canvas_transform() const

返回此项目的画布的变换矩阵。


  • get_global_mouse_position get_global_mouse_position() const

返回鼠标的全局位置。


  • get_global_transform get_global_transform() const

返回此项的全局变换矩阵。


  • get_global_transform_with_canvas get_global_transform_with_canvas() const

返回有关画布的此项的全局变换矩阵。


  • get_local_mouse_position get_local_mouse_position() const

返回相对于此项位置的鼠标位置。


  • get_transform get_transform() const

返回此项的变换矩阵。


  • get_viewport_rect get_viewport_rect() const

Rect2的形式返回视口的边界。


  • get_viewport_transform get_viewport_transform() const

返回此项目相对于视口的变换。


  • get_world_2d get_world_2d() const

返回此项目所在的World2D


  • hide hide()

隐藏CanvasItem(如果当前可见)。


  • is_local_transform_notification_enabled is_local_transform_notification_enabled() const

如果将本地转换通知传达给子代,则返回true


  • is_set_as_toplevel is_set_as_toplevel() const

如果节点设置为顶级,则返回true


  • is_transform_notification_enabled is_transform_notification_enabled() const

如果将全局转换通知传达给子代,则返回true


  • is_visible_in_tree is_visible_in_tree() const

如果该节点位于SceneTree中,则其返回的visible属性为true,并且其继承的可见性也为true,则返回true


  • make_canvas_position_local make_canvas_position_local(screen_point: Vector2) const

screen_point分配为该节点的新本地转换。


  • make_input_local make_input_local(event: InputEvent) const

event的输入发出的转换将在局部空间而不是全局空间中应用。


  • set_as_toplevel set_as_toplevel(enable: bool)

如果enabletrue,则该节点将不会从父画布项目继承其变换。


  • set_notify_local_transform set_notify_local_transform(enable: bool)

如果enabletrue,则将使用本地转换数据更新子级。


  • set_notify_transform set_notify_transform(enable: bool)

如果enabletrue,则将使用全局转换数据更新子级。


  • show show()

显示CanvasItem(如果当前隐藏)。


  • update update()

CanvasItem排队等待更新。