Game-engine

Beschikbaar

1. Je eerste game schrijven op een game-engine

Bij het implementeren van een computerspel zijn er drie fasen:

  1. Het spel initialiseren. Dit omvat verschillende voorbereidende acties: het bepalen van de grootte van het speelveld en het tekenen ervan, het maken en opstellen van spelobjecten in hun beginpositie, evenals alle andere acties die aan het begin van het spel moeten worden uitgevoerd.
  2. Het spel aan het spelen. Dit kan het verplaatsen van spelobjecten, acties van spelers, het tellen van verdiende punten en alle andere acties zijn die met regelmatige tussenpozen moeten worden uitgevoerd of als reactie op het klikken op knoppen en het indrukken van toetsen.
  3. Het spel beëindigen. Dit kan het stoppen van animaties, een win/verlies-bericht en alle andere acties die aan het einde van het spel moeten worden uitgevoerd, omvatten.

We zullen nu alle drie de stadia in volgorde doorlopen en zien hoe de CodeGym-game-engine dit proces kan vergemakkelijken.


2. Het spel initialiseren

Wanneer u de CodeGym-game-engine gebruikt, bestaat de game-initialisatie uit slechts twee stappen:

Stap 1: Maak de hoofdklasse van het spel aan

Om uw eigen game te maken op basis van de CodeGym-game-engine, moet u een klasse maken en deze de klasse Game laten uitbreiden (com.codegym.engine.cell.Game). Dit geeft je klas de mogelijkheid om methoden op de game-engine aan te roepen , en de engine kan methoden van je klasse aanroepen . Voorbeeld:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

Stap 2: Negeer de initialize()methode

In de initialize()methode voer je alle acties uit die nodig zijn om het spel te starten: het speelveld maken, alle spelobjecten maken, enz. Je hoeft deze methode alleen maar te declareren in de klasse die de Game-klasse erft. Voorbeeld:

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
  }
}

De initialize()methode is analoog aan de main()methode. Het is het beginpunt van waaruit al uw spelcode wordt uitgevoerd.



3. Het speelveld creëren

Het creëren van het speelveld is ook een proces in twee stappen:

Stap 1: Verdeel het speelveld in cellen

De game-engine verdeelt het hele speelveld in cellen. Het minimale formaat is 3×3 en het maximum is 100×100.

De grootte van het speelveld is constant als het eenmaal is gemaakt. De horizontale en verticale afmetingen hoeven niet hetzelfde te zijn. Bijvoorbeeld een breedte van 7 en een hoogte van 9:

Houd er rekening mee dat de celnummering begint in de linkerbovenhoek.

Gebruik de methode om de grootte van het speelveld in te stellen void setScreenSize(int width, int height). Het bepaalt de grootte van het speelveld. De parameters zijn het aantal cellen in de horizontale ( width) en verticale ( height) dimensies. Het wordt meestal eenmaal genoemd wanneer het spel begint. Voorbeeld:

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);
      ...
   }
}

Bij het schrijven van een spel moet u mogelijk de huidige breedte en hoogte van het speelveld weten. De overeenkomstige methoden zijn int getScreenWidth()en int getScreenHeight().

Stap 2: Zet het rooster aan/uit (optioneel)

Als je het niet prettig vindt om een ​​zwart raster te hebben dat de cellen van je speelveld scheidt, dan kun je dit uitschakelen.

De void showGrid(boolean isShow)methode schakelt het raster dat de cellen scheidt in/uit. Het raster wordt standaard weergegeven. Om het uit te schakelen, roept u deze methode aan en geeft u deze door falseals argument:

showGrid(false);

Resultaat:

Om het raster weer in te schakelen, roept u de methode als volgt aan:

showGrid(true);

Resultaat:



4. Primitief programma

Laten we een heel primitief spel schrijven dat de CodeGym-game-engine gebruikt. Het zal 3 dingen doen:

  1. Het verdeelt het speelveld in 9 cellen: 3×3
  2. Het schakelt het raster uit (de lijnen tussen cellen)
  3. De centrale cel wordt blauw geverfd en de brief Xwordt erin geschreven.

De uiteindelijke code ziet er als volgt uit:

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 dit voorbeeld is het speelveld ingesteld op 3x3, is het raster uitgeschakeld en wordt een oranje letter Xop de helft van de celhoogte in de middelste cel geplaatst met een blauwe achtergrond. Dit is het eerste wat de speler ziet wanneer het spel begint.


Opmerkingen
  • Populair
  • Nieuw
  • Oud
Je moet ingelogd zijn om opmerkingen te kunnen maken
Deze pagina heeft nog geen opmerkingen