NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 66: La classe Sprite.

 

Una Sprite rappresenta una sequenza di immagini, necessarie per visualizzare delle animazioni (un pallone da calcio che ruota, un personaggio che cammina) ma trattando le immagini come un unico oggetto (in termini informatici), semplificando così la gestione dell'animazione e riducendo la quantità di memoria necessaria.

 

A volte, le singole immagini di una Sprite sono note come frames, anche se questo termine è utilizzato più frequentemente per indicare l'intera schermata di gioco mostrata a video in un dato istante.

 

La classe Sprite dispone di tre costruttori:

  • Sprite(Image image);
  • Sprite(Image image, int frameWidth, int frameHeight);
  • Sprite(Sprite s);

col il secondo costruttore che genera una Sprite costituita da un insieme di frames presenti tutti nell'unica immagine passata come parametro: in pratica, ogni frame avrà dimensioni width x height (in pixel), per cui l'immagine verrà suddivisa in tanti frames di tali dimensioni che andranno a costituire la sequenza di frame della Sprite.

 

 

Metodi utili messi a disposizione da Sprite sono, ad esempio, i seguenti:

setFrameSequence(int[] sequence)   :   void Imposta la sequenza di frames.
getFrameSequenceLength()   :   int Restituisce la lunghezza della sequenza di frames (il numero di frames costituenti la Sprite).
getFrame()   :   int Restituisce l'indice (all'interno della sequenza di frame della Sprite) del 'frame corrente'.
nextFrame()   :   void Imposta il frame successivo come 'frame corrente'.
prevFrame()   :   void Imposta il frame precedente come 'frame corrente'.
setFrame(int sequenceIndex)   :   void Imposta il frame di indice sequenceIndex come 'frame corrente'.
defineReferencePixel(int x, int y)   :   void Imposta un pixel di riferimento per la Sprite: tutte le operazioni di spostamento verranno effettuate rispetto a quel punto.
setReferencePixel(int x, int y)   :   void Muove il pixel di riferimento della Sprite in una posizione del contesto grafico.
getRefPixelX()   :   int Restituisce la coordinata X della posizione del pixel di riferimento dello sprite (vedi i metodi reference pixel, sopra) rispetto al contesto grafico.
getRefPixelY()   :   int Restituisce la coordinata Y della posizione del pixel di riferimento dello sprite (vedi i metodi reference pixel, sopra) rispetto al contesto grafico.

 

Per disegnare una Sprite è sufficiente invocarne il metodo paint(), che la disegna a video; per ottenere un'animazione, invece, bisogna impostare la sequenza di frame da visualizzare, cosa fattibile con alcuni dei metodi elencati nella tabella mostrata precedentemente.

 

 
Vai all'inizio della pagina