Up to date
This page is up to date for Godot 4.0
. If you still find outdated information, please open an issue.
Sprite2D
Inherits: Node2D < CanvasItem < Node < Object
General-purpose sprite node.
Description
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.
Tutorials
Properties
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
Methods
get_rect ( ) const | |
is_pixel_opaque ( Vector2 pos ) const |
Signals
frame_changed ( )
Emitted when the frame changes.
texture_changed ( )
Emitted when the texture changes.
Property Descriptions
bool centered = true
If true
, texture is centered.
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.
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.
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 outermost pixels get blurred out. 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.
Method Descriptions
Rect2 get_rect ( ) const
Returns a Rect2 representing the Sprite2D’s boundary in local coordinates. Can be used to detect if the Sprite2D was clicked.
Example:
GDScriptC#
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 ( Vector2 pos ) const
Returns true
, if the pixel at the given position is opaque and false
in other case.
Note: It also returns false
, if the sprite’s texture is null
or if the given position is invalid.