java.lang.Object <– greenfoot.World
public abstract class World extends java.lang.Object
Si tratta di una griglia bidimensionale di celle.
Gli attori sono associati a un mondo e possono accedere a esso.
La dimensione delle celle può essere specificata al momento della creazione del mondo e rimane costante dopo la creazione.
Scenari semplici possono usare celle molto grandi che contengono gli oggetti in un’unica cella.
Scenari più elaborati utilizzano celle più piccole, fino al singolo pixel, per ottenere posizionamenti più accurati e animazioni più morbide.
Lo sfondo del mondo si decora con disegni o immagini.
public World(int larghezzaMondo, int altezzaMondo, int dimCella)
Devono essere specificate le dimensioni del mondo (come numero di celle) e la dimensione di ciascuna cella (in pixel).
Parametri:
altezzaMondo – L’altezza del mondo (in celle).
dimCella – Dimensione di una cella (in pixel).
public void act()
Il metodo viene chiamato da greenfoot (…)
Il metodo act() del mondo viene chiamata prima del metodo act() di tutti gli oggetti nel mondo.
Questo metodo non fa nulla. Deve essere sovrascritto nelle sottoclassi per implementare un’azione del mondo.
public final void setBackground(GreenfootImage immagine)
Parametro: immagine – L’immagine da visualizzare.
public final void setBackground(java.lang.String filename) throws java.lang.IllegalArgumentException
Sono accettate immagini di tipo jpeg, gif e png.
Parametro:
Throws:
Se l’immagine è più grande del mondo viene scalata. Se è più piccola viene replicata.
Per visualizzare facilmente la disposizione delle celle è sufficiente impostare un’immagine di sfondo con la dimensione uguale alla dimensione di una cella.
public GreenfootImage getBackground()
L’immagine può essere utilizzata per disegnare nello sfondo del mondo.
Restituisce:
public java.awt.Color getColorAt(int x, int y)
Se in quel punto non c’è un’immagine di sfondo restituisce Color.WHITE.
Per colorare devi acquisire l’immagine di sfondo del mondo per disegnarci sopra.
Parametri:
y – La coordinata y della cella.
Throws:
public int getWidth()
public int getHeight()
public int getCellSize()
public void setActOrder(java.lang.Class… classi)
public void setPaintOrder(java.lang.Class… classi)
L’ordine si specifica per classe: gli oggetti di una classe saranno attivati / disegnati sempre prima degli oggetti di un’altra classe.
Non si può specificare l’ordine degli oggetti della stessa classe.
Gli oggetti delle classi elencate prima nella lista saranno attivati prima / disegnati dopo di qualsiasi oggetto delle classi elencate dopo.
Gli oggetti di una classe non specificata esplicitamente ereditano l’ordine della loro superclasse.
Gli oggetti delle classi non elencate saranno attivati dopo / disegnati prima tutti gli oggetti delle classi che sono state specificate.
Parametro:
public void repaint()
public void addObject(Actor oggetto, int x, int y)
Parametri:
x – La coordinata x dove aggiungere l’oggetto.
y – La coordinata y dove aggiungere l’oggetto.
public void removeObject(Actor oggetto)
Parametro:
public void removeObjects(java.util.Collection oggetto)
Parametro:
public java.util.List getObjects(java.lang.Class classe)
Se una classe è specificata come parametro, saranno restituiti solo gli oggetti di questa classe (o delle sue sottoclassi).
Parametro:
Restituisce:
public java.util.List getObjectsAt(int x, int y, java.lang.Class classe)
Un oggetto si trova in una cella se la sua rappresentazione grafica si sovrappone alla cella in qualche punto.
Parametri:
y – La coordinata y della cella da controllare.
classe – La classe degli oggetti da cercare e restituire (con null restituirà tutti gli oggetti).
Restituisce:
public int numberOfObjects()
Restituisce:
public void started()
public void stopped()
Questo metodo può essere sovrascritto per implementare un certo comportamento quando l’esecuzione inizia / termina.
Di default è vuoto.