1. Arbeide med cellene på spillefeltet

Det er flott at vi kan dele spillefeltet inn i celler. Men hva kan vi gjøre med selve cellene?

For hver celle på spillefeltet kan vi angi:

  • cellefarge (cellens bakgrunnsfarge);
  • tekst (dette kan være tekst eller et tall);
  • tekst farge;
  • tekststørrelse som en prosentandel av cellestørrelsen.

La oss vurdere metoder for å jobbe med cellene på spillefeltet:

void setCellColor(int x, int y, Color color)setter fargen på cellen med koordinater (x, y)lik color.

Eksempler:

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

Color getCellColor(int x, int y)returnerer fargen på cellen med koordinater (x, y).

Eksempel:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)tilordner teksten String valuetil cellen med koordinater (x, y).

Eksempler:

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

String getCellValue(int x, int y)returnerer teksten i cellen med koordinater (x, y).

Eksempler:

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

void setCellTextSize(int x, int y, int size)angir størrelsen på teksten i cellen med koordinater (x, y), hvor sizeer teksthøyden som en prosentandel av cellehøyden.

Eksempel:

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

int getCellTextSize(int x, int y)returnerer størrelsen på innholdet i cellen med koordinater (x, y).

Eksempel:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)tildeler nummeret int valuetil cellen med koordinater (x, y).

Eksempler:

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

int getCellNumber(int x, int y)returnerer tallet i cellen med koordinater (x, y). Hvis cellen ikke inneholder et tall, returnerer den 0.

Eksempler:

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

void setCellTextColor(int x, int y, Color color)setter fargen på innholdet (teksten) i cellen med koordinater (x, y).

Eksempler:

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

Color getCellTextColor(int x, int y)returnerer fargen på innholdet (teksten) i cellen med koordinater (x, y).

Eksempel:

Color textColor = getCellTextColor(1, 3);

For enkelhets skyld finnes det flere setCellValueEx()metoder med forskjellige sett med parametere:

void setCellValueEx(int x, int y, Color cellColor, String value)setter bakgrunnsfargen og teksten til cellen med koordinater (x, y)lik henholdsvis cellColorog .value

Eksempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)angir bakgrunnsfargen, teksten og tekstfargen til cellen med koordinater (x, y)lik henholdsvis cellColor, value, og .textColor

Eksempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);angir bakgrunnsfarge, tekst, tekstfarge og tekststørrelse for cellen med koordinater (x, y)lik henholdsvis cellColor, value, textColor, og textSize.

Eksempel:

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


2. Arbeid med farger

CodeGym-spillmotoren har en spesiell Colortype som inneholder unike verdier for 148 farger. Den har også en spesiell NONEverdi som representerer fraværet av farge.

Eksempler på arbeid med farger

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.

Du kan farge en celle rød ved å bruke kommandoen:

setCellColor(0, 2, Color.RED);

Du kan sjekke om en celle har en bestemt farge med en kommando som:

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

Noen ganger må du kanskje få en rekke av alle mulige farger. For å gjøre dette, bruk values()metoden.

Eksempel:

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

Å få en fargeindeks i fargepaletten er veldig enkelt å gjøre - bare bruk metoden ordinal():

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

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

Du kan også enkelt få en farge etter indeksen:

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


3. Dialogbokser

På slutten av spillet må vi gi spilleren beskjed om han eller hun vant eller tapte. For denne og andre anledninger har CodeGym-spillmotoren den spesielle void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metoden, som viser en dialogboks med messagemeldingen.
Parametrene for denne metoden er:

  • cellColorer dialogboksens bakgrunnsfarge
  • messageer teksten i meldingen
  • textColorer fargen på teksten i meldingen
  • textSizeer størrelsen på teksten i meldingen

Dialogboksen lukkes av seg selv hvis brukeren trykker på mellomromstasten eller klikker på dialogboksen med musen.

Eksempel på å kalle denne metoden:

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


4. Bruksmetoder

Når du skriver spill, bruker du ofte tilfeldige tall. For å gjøre det lettere å få tilfeldige tall, kan du bruke spillmotorens verktøymetoder:

int getRandomNumber(int max)returnerer et tilfeldig tall fra 0til (max–1)inklusive.

int getRandomNumber(int min, int max)returnerer et tilfeldig tall fra mintil (max–1)inklusive.


5. JDK 11+

Når du kjører programmet fra IntelliJ IDEA, kan en klasse som arver Game-klassen generere følgende feil:

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

I dette tilfellet, for hver slik klasse, må du utføre disse trinnene én gang:
  1. Åpne KjørRediger konfigurasjon
  2. For verdien av VM-alternativer , skriv inn følgende:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    MERK FØLGENDE:

    I nyere versjoner av IntelliJ IDEA vises ikke "VM-alternativer"-feltet som standard. For å vise den, trykk ALT+V

  3. Trykk: BrukOK
  4. Kjør spillet.