1. Arbeta med cellerna på spelplanen

Det är jättebra att vi kan dela upp spelplanen i celler. Men vad kan vi göra med själva cellerna?

För varje cell på spelplanen kan vi ställa in:

  • cellfärg (cellens bakgrundsfärg);
  • text (detta kan vara text eller ett nummer);
  • text färg;
  • textstorlek i procent av cellstorleken.

Låt oss överväga metoder för att arbeta med cellerna på spelfältet:

void setCellColor(int x, int y, Color color)anger färgen på cellen med koordinater (x, y)lika med color.

Exempel:

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

Color getCellColor(int x, int y)returnerar färgen på cellen med koordinater (x, y).

Exempel:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)tilldelar texten String valuetill cellen med koordinater (x, y).

Exempel:

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

String getCellValue(int x, int y)returnerar texten i cellen med koordinater (x, y).

Exempel:

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

void setCellTextSize(int x, int y, int size)anger storleken på texten i cellen med koordinater , (x, y)där sizeär texthöjden i procent av cellhöjden.

Exempel:

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

int getCellTextSize(int x, int y)returnerar storleken på innehållet i cellen med koordinater (x, y).

Exempel:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)tilldelar numret int valuetill cellen med koordinater (x, y).

Exempel:

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

int getCellNumber(int x, int y)returnerar talet som finns i cellen med koordinater (x, y). Om cellen inte innehåller ett tal returnerar den 0.

Exempel:

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

void setCellTextColor(int x, int y, Color color)ställer in färgen på innehållet (texten) i cellen med koordinater (x, y).

Exempel:

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

Color getCellTextColor(int x, int y)returnerar färgen på innehållet (texten) i cellen med koordinater (x, y).

Exempel:

Color textColor = getCellTextColor(1, 3);

För din bekvämlighet finns det flera setCellValueEx()metoder med olika uppsättningar parametrar:

void setCellValueEx(int x, int y, Color cellColor, String value)ställer in cellens bakgrundsfärg och text med koordinater (x, y)lika med cellColorrespektive value.

Exempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)ställer in bakgrundsfärg, text och textfärg för cellen med koordinater (x, y)lika med cellColor, value, respektive textColor.

Exempel:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);anger bakgrundsfärg, text, textfärg och textstorlek för cellen med koordinater (x, y)lika med cellColor, value, textColor, textSizerespektive .

Exempel:

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


2. Arbeta med färg

CodeGym-spelmotorn har en speciell Colortyp som innehåller unika värden för 148 färger. Den har också ett speciellt NONEvärde som representerar frånvaron av färg.

Exempel på att arbeta med färg

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 färga en cell röd med kommandot:

setCellColor(0, 2, Color.RED);

Du kan kontrollera om en cell har en viss färg med ett kommando som:

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

Ibland kan du behöva få en uppsättning av alla möjliga färger. För att göra detta, använd values()metoden.

Exempel:

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

Att få en färgs index i färgpaletten är mycket lätt att göra - använd bara 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 också enkelt få en färg genom dess index:

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


3. Dialogrutor

I slutet av spelet måste vi meddela spelaren om han eller hon vann eller förlorade. För detta och andra tillfällen har CodeGym-spelmotorn den speciella void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metoden, som visar en dialogruta med messagemeddelandet.
Parametrarna för denna metod är:

  • cellColorär dialogrutans bakgrundsfärg
  • messageär texten i meddelandet
  • textColorär färgen på texten i meddelandet
  • textSizeär storleken på texten i meddelandet

Dialogrutan stängs av sig själv om användaren trycker på mellanslagstangenten eller klickar på dialogrutan med musen.

Exempel på att anropa denna metod:

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


4. Användningsmetoder

När du skriver spel använder du ofta slumpmässiga siffror. För att göra det lättare att få slumpmässiga siffror kan du använda spelmotorns verktygsmetoder:

int getRandomNumber(int max)returnerar ett slumptal från 0till (max–1)inklusive.

int getRandomNumber(int min, int max)returnerar ett slumptal från mintill (max–1)inklusive.


5. JDK 11+

När du kör ditt program från IntelliJ IDEA kan en klass som ärver Game-klassen generera följande fel:

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

I det här fallet, för varje sådan klass, måste du utföra dessa steg en gång:
  1. Öppna KörRedigera konfiguration
  2. För värdet av VM-alternativ anger du följande:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    UPPMÄRKSAMHET:

    I de senaste versionerna av IntelliJ IDEA visas inte fältet "VM-alternativ" som standard. För att visa den, tryck ALT+V

  3. Tryck: AnvändOK
  4. Kör spelet.