1. Scrivere il tuo primo gioco su un motore di gioco
Quando si implementa qualsiasi gioco per computer, ci sono tre fasi:
- Inizializzazione del gioco. Ciò include varie azioni preparatorie: impostare le dimensioni del campo di gioco e disegnarlo, creare e posizionare gli oggetti di gioco nella loro posizione iniziale, nonché qualsiasi altra azione che deve essere eseguita all'inizio del gioco.
- Giocare. Ciò può includere lo spostamento di oggetti di gioco, le azioni del giocatore, il conteggio dei punti guadagnati, nonché qualsiasi altra azione che deve essere eseguita a intervalli regolari o in risposta ai clic sui pulsanti e alla pressione dei tasti.
- Fine del gioco. Ciò potrebbe includere l'interruzione delle animazioni, un messaggio di vittoria/sconfitta e qualsiasi altra azione che deve essere eseguita alla fine del gioco.
Ora esamineremo tutte e tre le fasi in ordine e vedremo come il motore di gioco CodeGym può aiutare a semplificare questo processo.
2. Inizializzazione del gioco
Quando utilizzi il motore di gioco CodeGym, l'inizializzazione del gioco consiste in due soli passaggi:
Passaggio 1: crea la classe principale del gioco
Per creare il tuo gioco basato sul motore di gioco CodeGym, devi creare una classe e fare in modo che estenda la classe Game (com.codegym.engine.cell.Game). Questo darà alla tua classe la possibilità di chiamare metodi sul motore di gioco , e il motore sarà in grado di chiamare metodi della tua classe . Esempio:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Passaggio 2: eseguire l'override del initialize()
metodo
Nel initialize()
metodo esegui tutte le azioni necessarie per avviare il gioco: creare il campo di gioco, creare tutti gli oggetti di gioco, ecc. Devi solo dichiarare questo metodo nella classe che eredita la classe Game. Esempio:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
Il initialize()
metodo è analogo al main()
metodo. È il punto di ingresso da cui inizia l'esecuzione di tutto il codice di gioco.
3. Creazione del campo di gioco
Anche la creazione del campo di gioco è un processo in due fasi:
Passaggio 1: dividere il campo di gioco in celle
Il motore di gioco divide l'intero campo di gioco in celle. La dimensione minima è 3×3 e quella massima è 100×100.
La dimensione del campo di gioco è costante una volta creata. Le dimensioni orizzontali e verticali non devono essere uguali. Ad esempio, una larghezza di 7 e un'altezza di 9:
Si prega di notare che la numerazione delle celle inizia dall'angolo in alto a sinistra.
Per impostare la dimensione del campo di gioco, utilizzare il void setScreenSize(int width, int height)
metodo. Imposta la dimensione del campo di gioco. I suoi parametri sono il numero di celle nelle dimensioni orizzontale ( width
) e verticale ( height
). Di solito viene chiamato una volta all'inizio del gioco. Esempio:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
Quando si scrive un gioco, potrebbe essere necessario ottenere la larghezza e l'altezza attuali del campo di gioco. I metodi corrispondenti sono int getScreenWidth()
e int getScreenHeight()
.
Passaggio 2: attiva/disattiva la griglia (facoltativo)
Se non ti piace avere una griglia nera che separa le celle del tuo campo di gioco, puoi disattivarla.
Il void showGrid(boolean isShow)
metodo abilita/disabilita la griglia che separa le celle. La griglia viene visualizzata per impostazione predefinita. Per disattivarlo, chiama questo metodo e passalo false
come argomento:
showGrid(false);
Risultato:
Per riattivare la griglia, chiama il metodo in questo modo:
showGrid(true);
Risultato:
4. Programma primitivo
Scriviamo un gioco molto primitivo che utilizza il motore di gioco CodeGym. Farà 3 cose:
- Dividerà il campo di gioco in 9 celle: 3×3
- Disabiliterà la griglia (le linee tra le celle)
- La cella centrale sarà dipinta di blu e la lettera
X
sarà scritta al suo interno.
Il codice finale è simile a questo:
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
In questo esempio, il campo di gioco è impostato su 3x3, la griglia è disattivata e una lettera arancioneX
a metà dell'altezza della cella viene inserita nella cella centrale con uno sfondo blu . Questa sarà la prima cosa che il giocatore vedrà all'inizio del gioco.