Greenfoot Come creare un gioco in pochi semplici passi
Crab Game Il giocatore comanda il granchio con l’obiettivo di mangiare tutti i vermi prima di essere mangiato a sua volta da una delle aragoste. Il gioco termina per aver mangiato tutti i vermi o per essere stato mangiato da un’aragosta.
Crab Game – Gli elementi Il giocatore comanda il granchio con l’obiettivo di mangiare tutti i vermi prima di essere mangiato a sua volta da una delle aragoste.
Crab Game – Il granchio Il granchio: Mangia i vermi che intercetta lungo il cammino Si muove comandato dal giocatore.
Crab Game – Il granchio II Come farlo muovere? Qualche idea?
Crab Game – Il granchio III La nostra scelta è stata di consentire Movimenti laterali Rotazioni
Crab Game – L’aragosta L’aragosta: Si muove per il campo di gioco autonomamente in maniera casuale Mangia il granchio se lo intercetta lungo il suo percorso
Crab Game – Il verme Il verme: Appare in una posizione casuale del campo di gioco Si muove lievemente per simulare il movimento del verme che esce dalla sabbia
Quale ambiente abbiamo deciso di usare per lo sviluppare il gioco?
Cos’è Greenfoot? ● È un ambiente di sviluppo nato nel 2003 e pubblicato nel 2006 presso l'Università di Kent ● È un software libero e disponibile per tutte le piattaforme ● È usato come ambiente per facilitare l’ apprendimento della programmazione orientata agli oggetti in Java ● È utilizzato maggiormente per lo sviluppo di giochi semplici L’obiettivo degli sviluppatori: creare uno strumento per insegnare la programmazione orientata agli oggetti tramite un’interfaccia grafica che permette di interagire semplicemente con gli oggetti che si stanno manipolando.
Greenfoot – Elementi Interfaccia Pulsante Act Il programma avanza di un passo Pulsante Run Il programma viene eseguito come susseguirsi di azioni descritte nel metodo act() Pulsante Reset Reinizializza il programma allo stadio iniziale
Greenfoot – Elementi Interfaccia II Barra speed Modifica il rapporto tra il tempo trascorso nell’esecuzione e il numero di passi ( act() ) eseguiti Pulsante Compile Compila il codice rendendolo pronto per l’esecuzione
Greenfoot – Elementi Interfaccia III Greenfoot mette a disposizione due superclassi da cui si possono creare delle sottoclassi specializzate a seconda delle necessità: Classe World Classe Actor
Greenfoot – Le superclassi Classe World È la classe da cui deriva lo scenario del programma che si sta sviluppando Gli si può assegnare una immagine di sfondo Contiene il metodo act() È formato da una matrice in cui posso essere presenti degli attori Classe Actor È la classe da cui si possono derivare gli attori necessari al programma Alla creazione gli si assegna un’immagine Contiene il metodo act() Ogni attore ha una posizione nel world
Greenfoot – Scenario e Attori
Metodi Greenfoot
Crab Game
Lo Scenario
Lo Scenario II Tramite creazione guidata si può scegliere lo sfondo È una sottoclasse di World (predefinita in Greenfoot) Descrive la classe del campo di gioco Consente la gestione delle interazioni degli Actor
Gli attori – Classe Actor Classe che descrive gli oggetti che interagiscono nel World Ogni actor ha una posizione e un aspetto Metodo act() Chiamato dai bottoni Act e Run nell’interfaccia Permette di implementare il comportamento dell’oggetto
Sottoclasse - Animal
Sottoclasse – Animal II Estensione della Classe Actor Contiene metodi comuni alle sottoclassi successive public void turn(int angle) public void move() public boolean atWorldEdge() public boolean canSee(Class clss) public void eat(Class clss)
Sottoclasse - Animal (Crab Worm Lobster)
Sottoclasse - Animal (Crab Worm Lobster)II Estensione della Classe Animal Differenzia ogni Classe specializzando il comportamento Crab Mangia Worm Movimenti seguono i comandi del Giocatore Lobster Mangia Crab Movimenti casuali lungo lo scenario Worm Movimenti sul posto
Actor Crab Il cuore della classe è il metodo Act public void act() { lookForWorm(); (A) checkKeypress();(B) // Add your action code here. } (A) utilizza eat() della classe Animal (B) utilizza turn() e move() della classe Greenfoot
Actor Lobster public void act() { lookForCrab();(A) randomTurn();(B) move();(C) if (atWorldEdge()) turn (13);(D) } (A) Come per la classe Crab utilizza il metodo eat della classe Animal (B), (C) e (D) gestiscono il movimento casuale tramite i metodi della classe Greenfoot
Actor Worm public void act() { movement(); } Movement() utilizza i metodi della classe Greenfoot
Grazie Per l’Attenzione