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 65: Le classi Layer, LayerManager e TiledLayer.

 

La classe astratta Layer rappresenta l'entità minima visualizzabile su schermo.

 

Ha un suo bound rettangolare e può essere renderizzata usando un qualsiasi oggetto Graphics invocandone il metodo:

  • paint(Graphics g)   :   void; .

 

La sua posizione sul display sarà relativa all'origine del sistema di riferimento dell'oggetto Graphics; inoltre, un  Layer può essere visibile o invisibile.

 

 

Metodi utili:

getWidth()   :   int Restituisce la larghezza del Layer, in pixel.
getHeight()   :   int Restituisce l'altezza del Layer, in pixel.
getX()   :   int Restituisce la coordinata X della posizione del Layer.
getY()   :   int Restituisce la coordinata Y della posizione del Layer.
setPosition(int x, int y)   :   void Imposta la posizione del Layer.
move(int dx, int dy)   :   void Sposta il Layer di dx pixel in orizzontale e dy pixel in verticale (anche valori negativi, per entrambi i parametri).
isVisible()   :   boolean Restituisce true se il Layer è attualmente visibile, false altrimenti.
setVisible(boolean b)   :   void Imposta la visibilità del Layer (true per renderlo visibile, false per renderlo invisibile).

 

Tale classe ha due discendenti dirette (e non può essere estesa dal programmatore):

  • Sprite;
  • TiledLayer; .

 

 

Di TiledLayer parleremo più avanti in questo stesso capitolo, mentre analizzeremo Sprite nel capitolo successivo.

 

 

La classe LayerManager si occupa di gestire oggetti Layer, decidendo in che ordine (un ordine di tipo z-order, in pila dallo schermo verso l'utente) e sfasamento disegnarli.

 

Il costruttore è uno solo:

  • LayerManager(); .

 

Metodi utili di tale classe sono, ad esempio, i seguenti:

append(Layer l)   :   void Aggiunge un Layer alla pila del LayerManager.
insert(Layer l, int index)    :   void Inserisce un Layer tra quelli del LayerManager alla posizione specificata dal parametro index.
remove(Layer l)   :   void Rimuove il Layer specificato mediante il parametro l dalla pila del LayerManager.
getLayerAt(int index)   :   Layer Restituisce il Layer di posto index.
getSize()    :   int Restituisce la dimensione della pila di Layer, ossia il numero di Layer gestiti dal LayerManager.
paint(Graphics g, int x, int y)   :   void Disegna i Layer memorizzati nel LayerManager.
setViewWindow(int x, int y, int width, int height)   :   void Permette di impostare la dimensione della finestra che l'utente può vedere, ossia la parte di layer da visualizzare sul display.

 

A ciascun Layer viene associato un indice numerico, con 0 che rappresenta il Layer 'sul fondo', mentre il Layer di indice più elevato sarà quello più 'vicino all'utente' (ricordiamoci del fatto che i Layer supportano le trasparenze !).

 

 

TiledLayer aiuta lo sviluppatore (e J2ME, risparmiando risorse) quando si ha la necessità di utilizzare molti Layer identici da affiancare per realizzare immagini 'ripetitive' (tiled significa 'affiancate'), come avviene a volte in alcuni sfondi di videogiochi.

 

Come nelle Sprites, le tiles ('mattonelle') devono avere tutte la stessa dimensione e ad ognuna verrà assegnato un indice di sequenza, espresso mediante un valore intero, a partire da 1.

 

Costruttore:

  • TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight); .

Metodi utili:

setCell(int col, int row, int tileIndex)   :   void Imposta la tile di indice tileIndex nella cella di posizione col x row.
fillCells(int col, int row, int numCols, int numRows, int tileIndex)   :   void Imposta la tile di indice tileIndex nel rettangolo con vertice in col x row e dimensione numCols x numRows.
setStaticTileSet(Image image, int tileWidth, int tileHeight)   :   void Reimposta l'insieme delle tile.
getCell(int col, int row)   :   int Restituisce l'indice della tile contenuta nella posizione col x row.

 

 

 
Vai all'inizio della pagina