NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 61: Introduzione. La 'ricetta' per fare un gioco.

 

In questa sezione, ossia per i prossimi 6 capitoli, parleremo del package lcdui.game, messo a disposizione da J2ME per facilitare lo sviluppo di videogiochi per dispositivi mobile; in effetti, i 'giochi in Java per cellulari' sono le applicazioni maggiormente richieste per questo tipo di dispositivi (successo dovuto soprattutto alla portabilità delle applicazioni sviluppate con J2ME), cosa che ha spinto appunto alla creazione del package game.

 

 

Oltre a fornire nuove classi, game lavora 'dietro le quinte' per ridurre le dimensioni e la complessità delle applicazioni create, incrementando tra l'altro le performances finali.

 

Prima di esaminare le classi di game, comunque, esaminiamo il 'modello base' dello sviluppo di un videogioco: tali applicazioni, per funzionare, utilizzano (almeno) un thread, che esegue un ciclo (loop) infinito all'interno del quale vengono svolte le seguenti operazioni:

  • controlla l'input dell'utente;
  • aggiorna lo stato del gioco (posizioni degli oggetti, velocità, timer, rilevazione e gestione di eventuali collisioni ...) in base agli eventi derivanti dall'input dell'utente e agli eventi time-driven propri del gioco;
  • aggiorna il buffer dello schermo;
  • disegna il buffer su schermo;

il tutto ripetuto, appunto, in maniera ciclica, per un determinato numero di volte al secondo (valore che determina il frame-rate, cioè il numero di frame visualizzati in un secondo).

 

 

Quello appena descritto è, come detto, il 'modello base', la ricetta per sviluppare il 'gioco minimo': esistono motori di gioco multi-thread e che si occupano anche di controllare le connessioni alla rete, l'invio e la ricezione di messaggi e notifiche (per il multiplayer), la riproduzione di musica o effetti sonori, ecc...

 

Ad ogni modo, la base di partenza è proprio il ciclo infinito di un thread, e la classe GameCanvas fornisce i metodi necessari per supportare questo particolare modello di programmazione.

 

 
Vai all'inizio della pagina