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 value
till 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 value
till 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 cellColor
respektive 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
, textSize
respektive .
Exempel:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
2. Arbeta med färg
CodeGym-spelmotorn har en speciell Color
typ som innehåller unika värden för 148 färger. Den har också ett speciellt NONE
vä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 message
meddelandet.
Parametrarna för denna metod är:
cellColor
är dialogrutans bakgrundsfärgmessage
är texten i meddelandettextColor
är färgen på texten i meddelandettextSize
ä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 0
till (max–1)
inklusive.
int getRandomNumber(int min, int max)
returnerar ett slumptal från min
till (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:
- Öppna Kör → Redigera konfiguration
- 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
- Tryck: Använd → OK
- Kör spelet.