CanvasItem
继承
简要描述
任何二维的基类。
描述
任何二维的基类。
任何CanvasItem都可以绘制。
画布项目以树顺序绘制。
CanvasItem也可以隐藏,这也将隐藏其子级。
最终,可以请求一个转换通知,以在父树发生更改的情况下通知节点其全局位置已更改。
成员
类型 | 属性名 | 默认值 |
---|---|---|
int | light_mask | 1 |
Material | material | |
Color | modulate | Color( 1, 1, 1, 1 ) |
Color | self_modulate | Color( 1, 1, 1, 1 ) |
bool | show_behind_parent | false |
bool | show_on_top | |
bool | use_parent_material | false |
bool | visible | true |
方法
返回值类型 | 方法名称 |
---|---|
void | _draw() virtual |
void | draw_arc(center: Vector2, radius: float, start_angle: float, end_angle: float, point_count: int, color: Color, width: float = 1.0, antialiased: bool = false) |
float | draw_char(font: Font, position: Vector2, char: String, next: String, modulate: Color = Color( 1, 1, 1, 1 )) |
void | draw_circle(position: Vector2, radius: float, color: Color) |
void | draw_colored_polygon(points: PoolVector2Array, color: Color, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false) |
void | draw_line(from: Vector2, to: Vector2, color: Color, width: float = 1.0, antialiased: bool = false) |
void | 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 )) |
void | draw_multiline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false) |
void | draw_multiline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false) |
void | draw_multimesh(multimesh: MultiMesh, texture: Texture, normal_map: Texture = null) |
void | draw_polygon(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array = PoolVector2Array( ), texture: Texture = null, normal_map: Texture = null, antialiased: bool = false) |
void | draw_polyline(points: PoolVector2Array, color: Color, width: float = 1.0, antialiased: bool = false) |
void | draw_polyline_colors(points: PoolVector2Array, colors: PoolColorArray, width: float = 1.0, antialiased: bool = false) |
void | draw_primitive(points: PoolVector2Array, colors: PoolColorArray, uvs: PoolVector2Array, texture: Texture = null, width: float = 1.0, normal_map: Texture = null) |
void | draw_rect(rect: Rect2, color: Color, filled: bool = true, width: float = 1.0, antialiased: bool = false) |
void | draw_set_transform(position: Vector2, rotation: float, scale: Vector2) |
void | draw_set_transform_matrix(xform: Transform2D) |
void | draw_string(font: Font, position: Vector2, text: String, modulate: Color = Color( 1, 1, 1, 1 ), clip_w: int = -1) |
void | draw_style_box(style_box: StyleBox, rect: Rect2) |
void | draw_texture(texture: Texture, position: Vector2, modulate: Color = Color( 1, 1, 1, 1 ), normal_map: Texture = null) |
void | draw_texture_rect(texture: Texture, rect: Rect2, tile: bool, modulate: Color = Color( 1, 1, 1, 1 ), transpose: bool = false, normal_map: Texture = null) |
void | 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) |
void | force_update_transform() |
RID | get_canvas() const |
RID | get_canvas_item() const |
Transform2D | get_canvas_transform() const |
Vector2 | get_global_mouse_position() const |
Transform2D | get_global_transform() const |
Transform2D | get_global_transform_with_canvas() const |
Vector2 | get_local_mouse_position() const |
Transform2D | get_transform() const |
Rect2 | get_viewport_rect() const |
Transform2D | get_viewport_transform() const |
World2D | get_world_2d() const |
void | hide() |
bool | is_local_transform_notification_enabled() const |
bool | is_set_as_toplevel() const |
bool | is_transform_notification_enabled() const |
bool | is_visible_in_tree() const |
Vector2 | make_canvas_position_local(screen_point: Vector2) const |
InputEvent | make_input_local(event: InputEvent) const |
void | set_as_toplevel(enable: bool) |
void | set_notify_local_transform(enable: bool) |
void | set_notify_transform(enable: bool) |
void | show() |
void | update() |
信号
- **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
Default | 1 |
---|---|
setter | set_light_mask(value) |
getter | get_light_mask |
- Material material
setter | set_material(value) |
---|---|
getter | get_material |
- Color modulate
Default | Color( 1, 1, 1, 1 ) |
---|---|
setter | set_modulate(value) |
getter | get_modulate |
- Color self_modulate
Default | Color( 1, 1, 1, 1 ) |
---|---|
setter | set_self_modulate(value) |
getter | get_self_modulate |
- bool show_behind_parent
Default | false |
---|---|
setter | set_draw_behind_parent(value) |
getter | is_draw_behind_parent_enabled |
- bool show_on_top
setter | _set_on_top(value) |
---|---|
getter | _is_on_top |
- bool use_parent_material
Default | false |
---|---|
setter | set_use_parent_material(value) |
getter | get_use_parent_material |
- bool visible
Default | true |
---|---|
setter | set_visible(value) |
getter | is_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)
绘制一个矩形。
注意: width
和antialiased
仅在filled
为false
时有效。
- 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
- 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)
如果enable
为true
,则该节点将不会从父画布项目继承其变换。
- set_notify_local_transform set_notify_local_transform(enable: bool)
如果enable
为true
,则将使用本地转换数据更新子级。
- set_notify_transform set_notify_transform(enable: bool)
如果enable
为true
,则将使用全局转换数据更新子级。
- show show()
显示CanvasItem(如果当前隐藏)。
- update update()
将CanvasItem排队等待更新。