<< | Giochino Sottomarino | Classi principali: Entity e Nave >>
:: Giochino del Sottomarino - Progetto ::
Slick si trova qui: Slick. Scarica la full distributione e mettila in una cartella qualsiasi. Nella full distribution c'è una cartella chiamata lib, e dentro di questa ci sono alcuni jar.
In Netbeans cliccando su Tools | Libraries è possibile creare una nuova libreria, he chiamaremo Slick, premendo il pulsante New Library e dandogli il nome di Slick. Cliccando su Add JAR / Folder si possono aggiungere tutti i files .jar della cartella lib menzionata sopra.
Creiamo un nuovo progetto con Netbeans (non spiego come), il nome scegliete quello che vi pare, Sottomarino va bene. Clicchiamo col destro sul nome del progetto nella lista dei progetti, e scegliamo Properties. Selezioniamo Libraries sulla sinistra, e clicchiamo sul pulsante Add Library, e da lì selezioniamo la libreria Slick creata nel passo precedente. Così facendo al classpath del nostro progetto sono state aggiunte le librerie di Slick.
Tutte, tranne le librerie native. I files jar che cominciano con native... possono essere aperti come dei files zip. Il loro contenuto (.dll per Windows o .so per Linux) lo dovremo decomprimere in una cartella apposita. Dobbiamo trovare la cartella in cui è stato creato il progetto di Netbeans (di solito in ~/NetbeansProjects). Dentro lì creiamo una cartella a nome libs. Dentro a questa cartella decomprimeremo il contenuto dei jar delle librerie native.
Torniamo alle proprietà del progetto. Scegliamo la voce Run a sinistra e come VM Options mettiamo la seguente riga:
-Djava.library.path=./libs
Stiamo così dicendo a Java di cercare le librerie native nella cartella libs. Poi ci sarà qualche accorgimento da adottare quando si deciderà di esportare il progetto.
Il file Main.java è stato creato per noi. Ci servono altri due files: StatoGioco.java e Applicazione.java.
Creiamo sto file (pulsante destro sul source package del nostro progetto, New | Java Class) chiamandolo StatoGioco.java.
I giochi sono fatti a stati: il menu, il gioco effettivo, la schermata finale, la lista dei credits, gli high scores e così via. Per ora ci limitiamo ad un solo stato, poi vedremo.
La classe StatoGioco deve implementare GameState:
public class StatoGioco implements GameState { ... }
Netbeans ci permette di creare automaticamente tutti i metodi mancanti, cliccando sull'iconcina di warning che comparirà a sinistra non appena finito di scrivere implements GameState.
Premendo CTRL-SHIFT-I Netbeans importerà automaticamente tutte le classi necessarie. Se ha qualche dubbio ve lo chiederà.
I metodi creati automaticamente saranno più o meno fatti così:
public int getID() { throw new UnsupportedOperationException("Not supported yet."); }
Ecco, dobbiamo togliere tutte le righe che dicono throw new UnsupportedOperationException("Not supported yet."); .
I metodi interessanti per ora sono questi:
Creiamo la classe Applicazione.java. Questa dovrà estendere StateBasedGame:
public class Applicazione extends StateBasedGame
Il costruttore lo facciamo così:
public Applicazione() { super("Giochino Sottomarino"); }
così da dare alla finestra del gioco il titolo Giochino Sottomarino.
Dobbiamo poi overridare il metodo initStatesList in questo modo:
@Override public void initStatesList(GameContainer container) throws SlickException { GameState stato = new StatoGioco(); stato.setInput(container.getInput()); this.addState(stato); this.enterState(0); }
Le azioni che facciamo sono le seguenti:
Nel Main.java dobbiamo costruire l'applicazione. Ecco come dovrà essere il metodo main:
public static void main(String[] args) throws SlickException { AppGameContainer app = new AppGameContainer(new Applicazione()); app.setDisplayMode(1024, 768, false); app.setVSync(true); app.setUpdateOnlyWhenVisible(false); app.setAlwaysRender(true); app.start(); }
Se premete sul pulsante verde che somiglia ad un Play, oppure premete F6, dovrebbe comparire una bella finestra nera di dimensioni 1024x768 titolata "Giochino Sottomarino":)
Usufruite del forum!
<< | Giochino Sottomarino | Classi principali: Entity e Nave >>