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.

Sprite2D

Eredita: Node2D < CanvasItem < Node < Object

Nodo di sprite per uso generale.

Descrizione

Un nodo che visualizza una texture 2D. La texture visualizzata può essere una regione di una texture più grande di atlante, o un fotogramma d'animazione da uno sprite sheet.

Tutorial

Proprietà

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

Metodi

Rect2

get_rect() const

bool

is_pixel_opaque(pos: Vector2) const


Segnali

frame_changed() 🔗

Emesso quando il frame cambia.


texture_changed() 🔗

Emesso quando la frame cambia.


Descrizioni delle proprietà

bool centered = true 🔗

  • void set_centered(value: bool)

  • bool is_centered()

Se true, la texture è centrata.

Nota: Per i giochi con un'estetica pixel art, le texture potrebbero apparire deformate quando sono centrate. Ciò è causato dalla loro posizione tra i pixel. Per evitarlo, imposta questa proprietà su false, oppure considera di abilitare ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel e ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel.


bool flip_h = false 🔗

  • void set_flip_h(value: bool)

  • bool is_flipped_h()

Se true, la texture è capovolta orizzontalmente.


bool flip_v = false 🔗

  • void set_flip_v(value: bool)

  • bool is_flipped_v()

Se true, la texture è capovolta verticalmente.


int frame = 0 🔗

  • void set_frame(value: int)

  • int get_frame()

Il fotogramma attuale da visualizzare dallo spritesheet. hframes o vframes devono essere maggiori di 1. Questa proprietà è regolata automaticamente quando hframes o vframes sono modificati per continuare a puntare allo stesso fotogramma visivo (stessa colonna e riga). Se ciò è impossibile, questo valore è reimpostato su 0.


Vector2i frame_coords = Vector2i(0, 0) 🔗

Le coordinate del fotogramma da visualizzare dallo spritesheet. Questo è uno pseudonimo per la proprietà frame. hframes o vframes deve essere maggiore di 1.


int hframes = 1 🔗

  • void set_hframes(value: int)

  • int get_hframes()

Il numero di colonne nello spritesheet. Quando questa proprietà è modificata, frame è regolato in modo che è mantenuto lo stesso fotogramma visivo (stessa riga e colonna). Se ciò è impossibile, frame è reimpostato su 0.


Vector2 offset = Vector2(0, 0) 🔗

L'offset di disegno della texture.

Nota: Quando si aumenta offset.y in Sprite2D, lo sprite si sposta verso il basso sullo schermo (ovvero +Y punta verso il basso).


bool region_enabled = false 🔗

  • void set_region_enabled(value: bool)

  • bool is_region_enabled()

Se true, la texture è ritagliata da una texture più grande di atlante. Vedi region_rect.

Nota: Quando si utilizza uno Shader personalizzato su uno Sprite2D, la costante integrata UV farà riferimento all'intero spazio texture. Utilizza invece la costante integrata REGION_RECT per ottenere la regione attualmente visibile definita in region_rect. Consulta Shader di CanvasItem per i dettagli.


bool region_filter_clip_enabled = false 🔗

  • void set_region_filter_clip_enabled(value: bool)

  • bool is_region_filter_clip_enabled()

Se true, l'area al di fuori della regione region_rect è ritagliata per evitare il bleeding dei pixel circostanti della texture. region_enabled deve essere true.


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

  • void set_region_rect(value: Rect2)

  • Rect2 get_region_rect()

La regione della texture d'atlante da visualizzare. region_enabled deve essere true.


Texture2D texture 🔗

L'ogetto Texture2D da disegnare.


int vframes = 1 🔗

  • void set_vframes(value: int)

  • int get_vframes()

Il numero di righe nello spritesheet. Quando questa proprietà è modificata, frame è regolato in modo che è mantenuto lo stesso fotogramma visivo (stessa riga e colonna). Se ciò è impossibile, frame è reimpostato su 0.


Descrizioni dei metodi

Rect2 get_rect() const 🔗

Restituisce un Rect2 che rappresenta il confine dello Sprite2D in coordinate locali.

Esempio: Rileva se lo Sprite2D è stato cliccato:

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("Un clic!")

bool is_pixel_opaque(pos: Vector2) const 🔗

Restituisce true se il pixel nella posizione specificata è opaco, altrimenti false. Restituisce anche false se la posizione specificata è fuori dai limiti o se la texture di questo sprite è null. pos è in coordinate locali.