CodeGym /Cursussen /All lectures for NL purposes /Duik diep in de game-engine

Duik diep in de game-engine

All lectures for NL purposes
Niveau 1 , Les 571
Beschikbaar

1. Werken met de cellen van het speelveld

Het is mooi dat we het speelveld kunnen opdelen in cellen. Maar wat kunnen we doen met de cellen zelf?

Voor elke cel van het speelveld kunnen we instellen:

  • celkleur (de achtergrondkleur van de cel);
  • tekst (dit kan tekst of een cijfer zijn);
  • tekst kleur;
  • tekstgrootte als percentage van de celgrootte.

Laten we eens kijken naar methoden om met de cellen van het speelveld te werken:

void setCellColor(int x, int y, Color color)stelt de kleur van de cel in met coördinaten (x, y)gelijk aan color.

Voorbeelden:

setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);

Color getCellColor(int x, int y)geeft de kleur van de cel met coördinaten terug (x, y).

Voorbeeld:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)wijst de tekst toe String valueaan de cel met coördinaten (x, y).

Voorbeelden:

setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");

String getCellValue(int x, int y)geeft de tekst in de cel met coördinaten terug (x, y).

Voorbeelden:

String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));

void setCellTextSize(int x, int y, int size)stelt de grootte van de tekst in de cel in met coördinaten (x, y), waar sizeis de teksthoogte als een percentage van de celhoogte.

Voorbeeld:

setCellTextSize(2, 0, 70); // 70% of the cell height

int getCellTextSize(int x, int y)geeft de grootte van de inhoud in de cel met coördinaten terug (x, y).

Voorbeeld:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)wijst het nummer toe int valueaan de cel met coördinaten (x, y).

Voorbeelden:

setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);

int getCellNumber(int x, int y)geeft het getal in de cel met coördinaten terug (x, y). Als de cel geen getal bevat, wordt 0 geretourneerd.

Voorbeelden:

int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));

void setCellTextColor(int x, int y, Color color)stelt de kleur van de inhoud (tekst) van de cel in met coördinaten (x, y).

Voorbeelden:

setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);

Color getCellTextColor(int x, int y)geeft de kleur van de inhoud (tekst) van de cel met coördinaten terug (x, y).

Voorbeeld:

Color textColor = getCellTextColor(1, 3);

Voor uw gemak zijn er meerdere setCellValueEx()methoden met verschillende parametersets:

void setCellValueEx(int x, int y, Color cellColor, String value)stelt de achtergrondkleur en tekst van de cel in met coördinaten (x, y)gelijk aan respectievelijk cellColoren value.

Voorbeeld:

setCellValueEx(0, 2, Color.BLUE, "56");

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)stelt de achtergrondkleur, tekst en tekstkleur van de cel in met coördinaten (x, y)die gelijk zijn aan respectievelijk cellColor, value, en textColor.

Voorbeeld:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);stelt de achtergrondkleur, tekst, tekstkleur en tekstgrootte van de cel in met coördinaten die (x, y)gelijk zijn aan respectievelijk cellColor, value, textColoren textSize.

Voorbeeld:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);


2. Werken met kleur

De CodeGym-game-engine heeft een speciaal Colortype dat unieke waarden bevat voor 148 kleuren. Het heeft ook een speciale NONEwaarde die de afwezigheid van kleur vertegenwoordigt.

Voorbeelden van werken met kleur

Color myColor = Color.WHITE;  // The color white is assigned to the myColor variable.
Color redColor = Color.RED; // The color red is assigned to the redColor variable.
Color blueColor = Color.BLUE; // The color blue is assigned to the blueColor variable.

U kunt een cel rood kleuren met de opdracht:

setCellColor(0, 2, Color.RED);

U kunt controleren of een cel een bepaalde kleur heeft met een commando als:

if (getCellColor(0,2) == Color.GREEN)
{
}

Soms moet u een reeks van elke mogelijke kleur krijgen. Gebruik hiervoor de values()methode.

Voorbeeld:

// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();

Het is heel eenvoudig om de index van een kleur in het kleurenpalet te krijgen - gebruik gewoon de ordinal()methode:

Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red

int blueIndex = Color.BLUE.ordinal(); // Index of the color blue

U kunt ook gemakkelijk een kleur opvragen via de index:

 // The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];


3. Dialoogvensters

Aan het einde van het spel moeten we de speler laten weten of hij of zij heeft gewonnen of verloren. Voor deze en andere gelegenheden heeft de CodeGym-game-engine de speciale void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)methode, die een dialoogvenster met het messagebericht weergeeft.
De parameters van deze methode zijn:

  • cellColoris de achtergrondkleur van het dialoogvenster
  • messageis de tekst van het bericht
  • textColoris de kleur van de tekst van het bericht
  • textSizeis de grootte van de tekst van het bericht

Het dialoogvenster sluit zichzelf als de gebruiker op de spatiebalk drukt of met de muis op het dialoogvenster klikt.

Voorbeeld van het aanroepen van deze methode:

// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);


4. Hulpmethoden

Bij het schrijven van spellen gebruik je vaak willekeurige getallen. Om het gemakkelijker te maken om willekeurige getallen te krijgen, kunt u de hulpprogramma's van de game-engine gebruiken:

int getRandomNumber(int max)geeft een willekeurig getal terug van 0tot en met (max–1).

int getRandomNumber(int min, int max)geeft een willekeurig getal terug van mintot en met (max–1).


5. JDK 11+

Wanneer u uw programma uitvoert vanuit IntelliJ IDEA, kan een klasse die de klasse Game overerft de volgende fout genereren:

Error: JavaFX runtime components are missing, and are required to run this application

In dit geval moet u voor elke dergelijke klasse deze stappen één keer uitvoeren:
  1. Open UitvoerenConfiguratie bewerken
  2. Voor de waarde van VM-opties voert u het volgende in:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    AANDACHT:

    In recente versies van IntelliJ IDEA wordt het veld "VM-opties" niet standaard weergegeven. Druk op ALT+V om het weer te geven

  3. Druk op: ToepassenOK
  4. Voer het spel uit.
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION