Sprite¶
Inherits: Node2D < CanvasItem < Node < Object
通用精灵图节点。
描述¶
显示 2D 纹理的节点。显示的纹理可以是来自较大图集纹理的区域,也可以是来自精灵表动画的帧。
教程¶
属性¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法¶
get_rect ( ) const |
|
is_pixel_opaque ( Vector2 pos ) const |
信号¶
frame_changed ( )
当 frame 更改时发出。
texture_changed ( )
texture 更改时发出。
属性说明¶
bool centered
Default |
|
Setter |
set_centered(value) |
Getter |
is_centered() |
如果 true
,纹理居中。
bool flip_h
Default |
|
Setter |
set_flip_h(value) |
Getter |
is_flipped_h() |
为 true
时纹理将被水平翻转。
bool flip_v
Default |
|
Setter |
set_flip_v(value) |
Getter |
is_flipped_v() |
为 true
时纹理将被垂直翻转。
int frame
Default |
|
Setter |
set_frame(value) |
Getter |
get_frame() |
当前显示的精灵表中的帧。vframes 或 hframes 必须大于 1。
Vector2 frame_coords
Default |
|
Setter |
set_frame_coords(value) |
Getter |
get_frame_coords() |
显示的帧在精灵表中的坐标。这是 frame 属性的别名。vframes 或 hframes 必须大于 1。
int hframes
Default |
|
Setter |
set_hframes(value) |
Getter |
get_hframes() |
精灵表中的列数。
Texture normal_map
Setter |
set_normal_map(value) |
Getter |
get_normal_map() |
为 Sprite 提供深度的法线贴图。
注意: Godot 期望法线贴图使用 X+、Y- 和 Z+ 坐标系。参阅这个页面比较流行引擎所期望的法线贴图坐标系。
Vector2 offset
Default |
|
Setter |
set_offset(value) |
Getter |
get_offset() |
纹理的绘图偏移量。
bool region_enabled
Default |
|
Setter |
set_region(value) |
Getter |
is_region() |
如果 true
,则从较大的图集纹理中剪切纹理。参阅 region_rect。
bool region_filter_clip
Default |
|
Setter |
set_region_filter_clip(value) |
Getter |
is_region_filter_clip_enabled() |
如果 true
,最外面的像素会变得模糊。
Rect2 region_rect
Default |
|
Setter |
set_region_rect(value) |
Getter |
get_region_rect() |
要显示的图集纹理区域。 region_enabled 必须是 true
。
Texture texture
Setter |
set_texture(value) |
Getter |
get_texture() |
Texture 要绘制的对象。
int vframes
Default |
|
Setter |
set_vframes(value) |
Getter |
get_vframes() |
精灵表中的行数。
方法说明¶
Rect2 get_rect ( ) const
返回 Rect2 表示局部坐标中 Sprite 的边界。可用于检测 Sprite 是否被点击。例子:
func _input(event):
if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:
if get_rect().has_point(to_local(event.position)):
print("点击!")
如果给定位置的像素不透明,则返回 true
,其他情况下返回 false
。
注意:如果精灵的纹理为null
或者给定的位置无效,它也会返回false
。