1. Arbejde med cellerne på banen
Det er dejligt, at vi kan opdele spillefeltet i celler. Men hvad kan vi gøre med selve cellerne?
For hver celle på spillefeltet kan vi indstille:
- cellefarve (cellens baggrundsfarve);
- tekst (dette kan være tekst eller et tal);
- tekst farve;
- tekststørrelse som en procentdel af cellestørrelsen.
Lad os overveje metoder til at arbejde med cellerne på spillefeltet:
void setCellColor(int x, int y, Color color)indstiller farven på cellen med koordinater (x, y)lig med color.
Eksempler:
setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);
Color getCellColor(int x, int y)returnerer farven på cellen med koordinater (x, y).
Eksempel:
Color myColor = getCellColor(2, 0);
void setCellValue(int x, int y, String value)tildeler 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)indstiller størrelsen på teksten i cellen med koordinater (x, y), hvor sizeer teksthøjden som en procentdel af cellehøjden.
Eksempel:
setCellTextSize(2, 0, 70); // 70% of the cell height
int getCellTextSize(int x, int y)returnerer størrelsen af indholdet 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 indeholdt i cellen med koordinater (x, y). Hvis cellen ikke indeholder et tal, returnerer den 0.
Eksempler:
int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));
void setCellTextColor(int x, int y, Color color)indstiller farven på cellens indhold (tekst) med koordinater (x, y).
Eksempler:
setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);
Color getCellTextColor(int x, int y)returnerer farven på cellens indhold (tekst) med koordinater (x, y).
Eksempel:
Color textColor = getCellTextColor(1, 3);
For nemheds skyld er der flere setCellValueEx()metoder med forskellige sæt parametre:
void setCellValueEx(int x, int y, Color cellColor, String value)indstiller cellens baggrundsfarve og tekst med koordinater (x, y)lig med henholdsvis cellColorog value.
Eksempel:
setCellValueEx(0, 2, Color.BLUE, "56");
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)indstiller cellens baggrundsfarve, tekst og tekstfarve med koordinater (x, y)lig med 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);indstiller cellens baggrundsfarve, tekst, tekstfarve og tekststørrelse med koordinater (x, y)lig med henholdsvis cellColor, value, textColor, og textSize.
Eksempel:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
2. Arbejde med farve
CodeGym-spilmotoren har en speciel Colortype, der indeholder unikke værdier for 148 farver. Det har også en særlig NONEværdi, der repræsenterer fraværet af farve.
Eksempler på arbejde med farver
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 farve en celle rød ved at bruge kommandoen:
setCellColor(0, 2, Color.RED);
Du kan kontrollere, om en celle har en bestemt farve med en kommando som:
if (getCellColor(0,2) == Color.GREEN)
{
}
Nogle gange skal du muligvis få en række af alle mulige farver. For at gøre dette skal du bruge values()metoden.
Eksempel:
// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();
At få en farves indeks i farvepaletten er meget let at gøre - bare brug ordinal()metoden:
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å nemt få en farve ved dens indeks:
// The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];
3. Dialogbokse
I slutningen af spillet skal vi fortælle spilleren, om han eller hun har vundet eller tabt. Til denne og andre lejligheder har CodeGym-spilmotoren den specielle void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metode, som viser en dialogboks med messagebeskeden.
Parametrene for denne metode er:
cellColorer dialogboksens baggrundsfarvemessageer teksten i beskedentextColorer farven på teksten i beskedentextSizeer størrelsen på teksten i beskeden
Dialogboksen lukker sig selv, hvis brugeren trykker på mellemrumstasten eller klikker på dialogboksen med musen.
Eksempel på at kalde denne metode:
// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);
4. Nyttemetoder
Når du skriver spil, bruger du ofte tilfældige tal. For at gøre det nemmere at få tilfældige tal, kan du bruge spilmotorens hjælpemetoder:
int getRandomNumber(int max)returnerer et tilfældigt tal fra 0til (max–1)inklusive.
int getRandomNumber(int min, int max)returnerer et tilfældigt tal fra mintil (max–1)inklusive.
5. JDK 11+
Når du kører dit program fra IntelliJ IDEA, kan en klasse, der arver Game-klassen, generere følgende fejl:
Error: JavaFX runtime components are missing, and are required to run this application
I dette tilfælde skal du for hver sådan klasse udføre disse trin én gang:
- Åbn Kør → Rediger konfiguration
- For værdien af VM-indstillinger skal du indtaste følgende:
--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
OPMÆRKSOMHED:
I nyere versioner af IntelliJ IDEA er feltet "VM-indstillinger" ikke vist som standard. Tryk på ALT+V for at vise den
- Tryk på: Anvend → OK
- Kør spillet.
GO TO FULL VERSION