Sprite2D
继承: Node2D
< CanvasItem
< Node
< Object
General-purpose sprite node.
描述
A node that displays a 2D texture. The texture displayed can be a region from a larger atlas texture, or a frame from a sprite sheet animation.
属性
bool | centered |
bool | flip_h |
bool | flip_v |
int | frame |
Vector2i | frame_coords |
int | hframes |
Vector2 | offset |
bool | region_enabled |
bool | region_filter_clip_enabled |
Rect2 | region_rect |
Texture2D | texture |
int | vframes |
方法
信号
frame_changed ( )
Emitted when the frame
changes.
texture_changed ( )
Emitted when the texture
changes.
属性说明
bool
centered = true
If true
, texture is centered.
Note: For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to false
, or consider enabling ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel
and ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel
.
bool
flip_h = false
If true
, texture is flipped horizontally.
bool
flip_v = false
If true
, texture is flipped vertically.
int
frame = 0
Current frame to display from sprite sheet. hframes
or vframes
must be greater than 1. This property is automatically adjusted when hframes
or vframes
are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to 0
.
Vector2i
frame_coords = Vector2i(0, 0)
Coordinates of the frame to display from sprite sheet. This is as an alias for the frame
property. hframes
or vframes
must be greater than 1.
int
hframes = 1
The number of columns in the sprite sheet. When this property is changed, frame
is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, frame
is reset to 0
.
Vector2
offset = Vector2(0, 0)
The texture's drawing offset.
bool
region_enabled = false
If true
, texture is cut from a larger atlas texture. See region_rect
.
bool
region_filter_clip_enabled = false
If true
, the area outside of the region_rect
is clipped to avoid bleeding of the surrounding texture pixels. region_enabled
must be true
.
Rect2
region_rect = Rect2(0, 0, 0, 0)
The region of the atlas texture to display. region_enabled
must be true
.
Texture2D
texture
Texture2D
object to draw.
int
vframes = 1
The number of rows in the sprite sheet. When this property is changed, frame
is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, frame
is reset to 0
.
方法说明
Returns a Rect2
representing the Sprite2D's boundary in local coordinates.
Example: Detect if the Sprite2D was clicked:
func _input(event):
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
if get_rect().has_point(to_local(event.position)):
print("A click!")
public override void _Input(InputEvent @event)
{
if (@event is InputEventMouseButton inputEventMouse)
{
if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left)
{
if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
{
GD.Print("A click!");
}
}
}
}
bool
is_pixel_opaque ( pos: Vector2
) const1
Returns true
, if the pixel at the given position is opaque and false
in other case. The position is in local coordinates.
Note: It also returns false
, if the sprite's texture is null
or if the given position is invalid.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。