cerca
Giochino del Sottomarino
modifica cronologia stampa login logout

Wiki

Tools

Categorie

Help

edit SideBar

Utenti.GiochinoSottomarino-Progetto History

Hide minor edits - Show changes to output

Changed line 101 from:
* diciamo che la frequenza di aggiornamento del gioco dovrà essere sincrona allo schermo (in genere 60 frames per secondo)
to:
* diciamo che la frequenza di aggiornamento del gioco dovrà essere sincrona alla frequenza di aggiornamento dello schermo (in genere 60 frames per secondo)
Added line 31:
Changed line 36 from:
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 Game State'''.
to:
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'''.
Changed line 14 from:
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 i jar con le librerie native.
to:
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.
Changed line 12 from:
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.
to:
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.
Changed lines 5-108 from:
%titolo%''':: Giochino del Sottomarino ::'''
to:
%titolo%''':: Giochino del Sottomarino - Progetto ::'''

!!Slick
Slick si trova qui: [[Slick -> http://slick.cokeandcode.com/]]. 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 i jar con le 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 Game State'''.

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 allo 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 -> http://www.swappa.it/board]]!
Added lines 1-10:
(:title Giochino del Sottomarino:)

<<|[[Giochino Sottomarino]]|>>

%titolo%''':: Giochino del Sottomarino ::'''

<<|[[Giochino Sottomarino]]|>>

----
[[!Guide]]