cerca
Giochino del Sottomarino
modifica cronologia stampa login logout

Wiki

Tools

Categorie

Help

edit SideBar

Giochino del Sottomarino

<< | Giochino Sottomarino | Classi principali: Entity e Nave >>

 :: Giochino del Sottomarino - Progetto ::

Slick

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.

Un po' di codice

Il file Main.java è stato creato per noi. Ci servono altri due files: StatoGioco.java e Applicazione.java.

StatoGioco.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:

  • getID(): deve ritornare 0
  • isAcceptingInput(): deve ritornare true

Applicazione.java

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:

  • creiamo uno stato di gioco: il nostro StatoGioco
  • diciamo allo stato qual'è l'Input cui dovrà fare riferimento (per ora non lo usiamo, ma servirà)
  • aggiungiamo lo stato alla lista interna con this.addState(stato)
  • attiviamo quello stato: enterState(0). Lo 0 è l'ID dello stato: vedi sopra il metodo getID() in StatoGioco.

Main.java

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();
 }
  • nella prima riga creiamo il container del gioco, dicendogli che dovrà contenere l'applicazione Applicazione
  • diciamo che lo schermo dovrà essere 1024x768, NON fullscreen (provate a mettere true al posto di false)
  • diciamo che la frequenza di aggiornamento del gioco dovrà essere sincrona alla frequenza di aggiornamento dello schermo (in genere 60 frames per secondo)
  • diciamo che il nostro gioco deve aggiornarsi anche quando la sua finestra non è visibile: app.setUpdateOnlyWhenVisible(false)
  • diciamo che il nostro gioco dovrà eseguire il ciclo di render sempre, a prescindere dalla visibilità: app.setAlwaysRender(true);
  • facciamo partire il tutto

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":)

Dubbi o perplessità

Usufruite del forum!

<< | Giochino Sottomarino | Classi principali: Entity e Nave >>


Guide