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 value
til 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 size
er 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 value
til 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 cellColor
og .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 Color
type som inneholder unike verdier for 148 farger. Den har også en spesiell NONE
verdi 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 message
meldingen.
Parametrene for denne metoden er:
cellColor
er dialogboksens bakgrunnsfargemessage
er teksten i meldingentextColor
er fargen på teksten i meldingentextSize
er 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 0
til (max–1)
inklusive.
int getRandomNumber(int min, int max)
returnerer et tilfeldig tall fra min
til (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:
- Åpne Kjør → Rediger konfigurasjon
- 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
- Trykk: Bruk → OK
- Kjør spillet.
GO TO FULL VERSION