Inherits: 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 true
bool flip_h false
bool flip_v false
int frame 0
Vector2 frame_coords Vector2( 0, 0 )
int hframes 1
Texture normal_map  
Vector2 offset Vector2( 0, 0 )
bool region_enabled false
bool region_filter_clip false
Rect2 region_rect Rect2( 0, 0, 0, 0 )
Texture texture  
int vframes 1


Rect2 get_rect ( ) const
bool is_pixel_opaque ( Vector2 pos ) const


  • frame_changed ( )

Emitted when the frame changes.

  • texture_changed ( )

Emitted when the texture changes.

Property Descriptions

Default true
Setter set_centered(value)
Getter is_centered()

If true, texture is centered.

Default false
Setter set_flip_h(value)
Getter is_flipped_h()

If true, texture is flipped horizontally.

Default false
Setter set_flip_v(value)
Getter is_flipped_v()

If true, texture is flipped vertically.

Default 0
Setter set_frame(value)
Getter get_frame()

Current frame to display from sprite sheet. vframes or hframes must be greater than 1.

Default Vector2( 0, 0 )
Setter set_frame_coords(value)
Getter get_frame_coords()

Coordinates of the frame to display from sprite sheet. This is as an alias for the frame property. vframes or hframes must be greater than 1.

Default 1
Setter set_hframes(value)
Getter get_hframes()

The number of columns in the sprite sheet.

Setter set_normal_map(value)
Getter get_normal_map()

The normal map gives depth to the Sprite.

Note: Godot expects the normal map to use X+, Y-, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines.

Default Vector2( 0, 0 )
Setter set_offset(value)
Getter get_offset()

The texture's drawing offset.

  • bool region_enabled
Default false
Setter set_region(value)
Getter is_region()

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

  • bool region_filter_clip
Default false
Setter set_region_filter_clip(value)
Getter is_region_filter_clip_enabled()

If true, the outermost pixels get blurred out.

Default Rect2( 0, 0, 0, 0 )
Setter set_region_rect(value)
Getter get_region_rect()

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

Setter set_texture(value)
Getter get_texture()

Texture object to draw.

Default 1
Setter set_vframes(value)
Getter get_vframes()

The number of rows in the sprite sheet.

Method Descriptions

  • Rect2 get_rect ( ) const

Returns a Rect2 representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example:

func _input(event):
    if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:
        if get_rect().has_point(to_local(event.position)):
            print("A click!")

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.