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

bool

centered

true

bool

flip_h

false

bool

flip_v

false

int

frame

0

Vector2i

frame_coords

Vector2i(0, 0)

int

hframes

1

Vector2

offset

Vector2(0, 0)

bool

region_enabled

false

bool

region_filter_clip_enabled

false

Rect2

region_rect

Rect2(0, 0, 0, 0)

Texture2D

texture

int

vframes

1

Methods

Rect2

get_rect ( ) const

bool

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

  • void set_centered ( bool value )

  • bool is_centered ( )

If true, texture is centered.


bool flip_h = false

  • void set_flip_h ( bool value )

  • bool is_flipped_h ( )

If true, texture is flipped horizontally.


bool flip_v = false

  • void set_flip_v ( bool value )

  • bool is_flipped_v ( )

If true, texture is flipped vertically.


int frame = 0

  • void set_frame ( int value )

  • int get_frame ( )

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

  • void set_hframes ( int value )

  • int get_hframes ( )

The number of columns in the sprite sheet.


Vector2 offset = Vector2(0, 0)

The texture’s drawing offset.


bool region_enabled = false

  • void set_region_enabled ( bool value )

  • bool is_region_enabled ( )

If true, texture is cut from a larger atlas texture. See region_rect.


bool region_filter_clip_enabled = false

  • void set_region_filter_clip_enabled ( bool value )

  • bool is_region_filter_clip_enabled ( )

If true, the outermost pixels get blurred out. region_enabled must be true.


Rect2 region_rect = Rect2(0, 0, 0, 0)

  • void set_region_rect ( Rect2 value )

  • Rect2 get_region_rect ( )

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


Texture2D texture

Texture2D object to draw.


int vframes = 1

  • void set_vframes ( int value )

  • int get_vframes ( )

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#

  1. func _input(event):
  2. if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
  3. if get_rect().has_point(to_local(event.position)):
  4. print("A click!")
  1. public override void _Input(InputEvent @event)
  2. {
  3. if (@event is InputEventMouseButton inputEventMouse)
  4. {
  5. if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left)
  6. {
  7. if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
  8. {
  9. GD.Print("A click!");
  10. }
  11. }
  12. }
  13. }

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.