Traduzione del tutorial ufficiale.
Questa breve introduzione permette un’incursione nell’uso di Greenfoot.
Si assume che tu abbia qualche familiarità con la programmazione, perché si punta tutto sulla brevità piuttosto che sui dettagli.
Puoi avere maggiori dettagli con il tutorial Wombats Tutorial.
Installazione
Vai alla pagina di download e scarica e installa Greenfoot.
Giocare con gli oggetti
Lo scenario del tutorial si chiama Wombats.
I vombati sono animali nativi dell’Australia.
A destra si vedono alcune classi coinvolte nello scenario.
Fai clic con il pulsante destro del mouse sulla classe Wombat (il rettangolo con scritto Wombat) e seleziona new Wombat().
Otterrai un’icona di vombato.
Trascinala nel mondo (l’area marrone vuota della finestra).
Ora clicca il pulsante Azione.
Il tutorial spiega molte cose sugli oggetti ma qui tratteremo altre cose che non sono trattate nel tutorial.
Lo scenario crab
Scarica lo scenario crab1 e scompattalo.
In Greenfoot, seleziona Scenario>Apri e poi scegli la cartella crab1.
Crea un granchio, crab, come hai fatto per il vombato, sistemalo nel mondo e clicca Esegui.
Non succederà nulla; ora dobbiamo programmare il granchio per poterlo muovere.
Far muovere il granchio
Ora faremo in modo che il granchio faccia qualcosa.
Apri l’editor del granchio selezionando Apri editor dal suo menu contestuale.
Nell’editor vedrai un metodo vuoto act():
public void act() { }
Inserisci l’istruzione move(); nel corpo del metodo act():
public void act() { move(); }
Chiudi l’editor e clicca il pulsante Compila tutto.
Dopo sistema di nuovo un granchio nel mondo e prova a cliccare il pulsante Azione.
Prova anche Esegui e il cursore Velocità.
Girare
Adesso possiamo far muovere il granchio. Possiamo anche farlo girare.
Modifica il codice (utilizzando l’editor) per aggiungere un’istruzione di rotazione.
Nota che il metodo turn() ha un parametro per il numero di gradi della rotazione.
Utilizziamo 5 gradi nel nostro esempio.
public void act() { move(); turn(5); }
Compila, posiziona di nuovo il granchio nel mondo e mettilo alla prova (clicca Esegui).
Prova a mettere più granchi.
Maggiori informazioni sui metodi
I metodi move() e turn() provengono dalla classe Animal.
Vediamo quali sono gli altri metodi che sono disponibili.
Apri l’editor della classe Animal, e passa alla vista Specifiche.
Si fa cambiando la scelta della casella di riepilogo in alto a destra da Implementazione aSpecifiche.
Girare sul bordo dello schermo
Guardando i metodi esistenti vediamo che c’è il metodo atWorldEdge() che controlla se siamo vicini al bordo del mondo.
utilizzando questo metodo possiamo modificare il nostro codice perché il granchio giri solamente quando finisce sul bordo.
public void act() { if (atWorldEdge()) { turn(13); } move(); }
Sistema diversi granchi nel mondo e prova.
Creare una nuova classe
Adesso vogliamo aggiungere una nuova classe (un altro tipo di animale).
Seleziona Nuova sottoclasse... dal menu della classe Animal.
Scrivi Worm come nome della classe.
Puoi vedere che ci sono già delle immagini, inclusa quella di un verme.
Seleziona l’immagine e clicca Ok.
Compila di nuovo e sistema dei vermi nel mondo.
Aggiungere la tastiera
Adesso vogliamo controllare il granchio in modo da fargli prendere i vermi.
Il primo passo è quello di controllare il granchio con la tastiera.
Ogni tasto della tastiera ha un nome, cioè left per la freccia a sinistra.
Ecco come aggiungere il controllo tramite tastiera.
public void act() { if (Greenfoot.isKeyDown("left")) { turn(-7); } if (Greenfoot.isKeyDown("right")) { turn(7); } move(); }
Interazione tra oggetti
Adesso, vogliamo che il granchio mangi i vermi quando li incrocia.
Possiamo usare i metodi canSee() e eat() della classe Animal.
public void act() { if (Greenfoot.isKeyDown("left")) { turn(-7); } if (Greenfoot.isKeyDown("right")) { turn(7); } move(); if (canSee(Worm.class)) { eat(Worm.class); } }
Compila, posiziona nel mondo un granchio e dei vermi e prova.
Aggiungere un’aragosta
Per rendere lo scenario più interessante aggiungiamo un’altra creatura che caccia il granchi.
Aggiungiamo un’aragosta che va in giro casualmente e cerca di mangiare il granchio.
Aggiungi l’aragosta, come prima, e scrivi il codice seguente nel suo metodo act().
public void act() { if (atWorldEdge()) { turn(17); } move(); if (Greenfoot.getRandomNumber(100) > 90) { turn(Greenfoot.getRandomNumber(90)-45); } if (canSee(Crab.class)) { eat(Crab.class); } }
Adesso posiziona nel mondo un granchio, tre aragoste e un po’ di vermi e prova a prendere tutti i vermi prima che l’aragosta prenda te!
Aggiungere i suoni
L’ultimo passo per oggi è quello di aggiungere dei suoni al piccolo gioco che abbiamo creato.
Nella classe crab, nel punto dove il granchio mangia il verme, sistema un’istruzione per emettere un suono.
Nello scenario sono disponibili due file audio di nome slurp.wav e au.wav.
if (canSee(Worm.class)) { eat(Worm.class); Greenfoot.playSound("slurp.wav"); }
Allo stesso modo, aggiungi l’istruzione per suonare au.wav nella classe Lobster dove l’aragosta mangia il granchio.
Per cercare quali altri metodi che fanno qualcosa sono disponibili in Greenfoot, usa la voce di menu Aiuto>Documentazione Classi Greenfoot.
Il modo migliore per iniziare è probabilmente di dare un’occhiata ad altri scenari.
Molti sono inclusi nell’installazione, e molti altri sono disponibili Scenarios page the Greenfoot Gallery.
Fare di più
Questa introduzione veloce è una versione molto abbreviata di parti dei primi due capitoli del libro Introduction to Programming with Greenfoot.
In questo libro viene introdotto e discusso nei dettagli questo esempio seguito da molti altri progetti che ti guidano nello sviluppo di diversi giochi e simulazioni
- asteroids
- una simulazione di formiche
- un piano
- una simulazione di un pianeta con gravità
- ….