Class reference

Sprite2D

Inherits Node2D

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.

Properties

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. Note: When you increase offset.y in Sprite2D, the sprite moves downward on screen (i.e., +Y is down).

bool region_enabled = false

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)

The region of the atlas texture to display. region_enabled must be true.

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.

Methods

Rect2 get_rect() const

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(Vector2 pos) const

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.

Signals

frame_changed()

Emitted when the frame changes.

texture_changed()

Emitted when the texture changes.

Tutorials

Source revision 4f5b14abade2
Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.