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...
Sprite2D
繼承: Node2D < CanvasItem < Node < Object
通用精靈節點。
說明
顯示 2D 紋理的節點。顯示的紋理可以是較大合集紋理中的某個區域,也可以是精靈表動畫中的某一影格。
教學
屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
get_rect() const |
|
is_pixel_opaque(pos: Vector2) const |
訊號
frame_changed() 🔗
當 frame 更改時發出。
texture_changed() 🔗
當 texture 更改時發出。
屬性說明
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.
若為 true,紋理將水平翻轉。
若為 true,紋理將垂直翻轉。
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) 🔗
顯示的影格在精靈表中的座標。這是 frame 屬性的別名。vframes 或 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.
Note: When you increase offset.y in Sprite2D, the sprite moves downward on screen (i.e., +Y is down).
If true, texture is cut from a larger atlas texture. See region_rect.
Note: When using a custom Shader on a Sprite2D, the UV shader built-in will refer to the entire texture space. Use the REGION_RECT built-in to get the currently visible region defined in region_rect instead. See CanvasItem shaders for details.
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) 🔗
要顯示的合集紋理區域。region_enabled 必須是 true。
要繪製的 Texture2D 對象。
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) const 🔗
Returns true if the pixel at the given position is opaque, false otherwise. Also returns false if the given position is out of bounds or this sprite's texture is null. pos is in local coordinates.