1. Munka a játéktér celláival
Nagyon jó, hogy sejtekre oszthatjuk a játékteret. De mit tehetünk magukkal a sejtekkel?
A játéktér minden cellájához beállíthatjuk:
- cella színe (a cella háttérszíne);
- szöveg (ez lehet szöveg vagy szám);
- szöveg szín;
- szöveg mérete a cella méretének százalékában.
Tekintsük a játékmező celláival való munkamódszereket:
void setCellColor(int x, int y, Color color)
(x, y)
a -val egyenlő koordinátákkal rendelkező cella színét állítja be color
.
Példák:
setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);
Color getCellColor(int x, int y)
visszaadja a cella színét koordinátákkal (x, y)
.
Példa:
Color myColor = getCellColor(2, 0);
void setCellValue(int x, int y, String value)
hozzárendeli a szöveget String value
a koordinátákkal ellátott cellához (x, y)
.
Példák:
setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");
String getCellValue(int x, int y)
visszaadja a koordinátákkal ellátott cellában található szöveget (x, y)
.
Példák:
String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));
void setCellTextSize(int x, int y, int size)
beállítja a cellában lévő szöveg méretét koordinátákkal (x, y)
, ahol size
a szöveg magassága a cella magasságának százalékában.
Példa:
setCellTextSize(2, 0, 70); // 70% of the cell height
int getCellTextSize(int x, int y)
a cellában lévő tartalom méretét adja vissza koordinátákkal (x, y)
.
Példa:
int size = getCellTextSize(2 , 0);
void setCellNumber(int x, int y, int value)
int value
a koordinátákkal rendelkező cellához rendeli a számot (x, y)
.
Példák:
setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);
int getCellNumber(int x, int y)
a koordinátákkal ellátott cellában található számot adja vissza (x, y)
. Ha a cella nem tartalmaz számot, akkor 0-t ad vissza.
Példák:
int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));
void setCellTextColor(int x, int y, Color color)
beállítja a koordinátákkal ellátott cella tartalmának (szövegének) színét (x, y)
.
Példák:
setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);
Color getCellTextColor(int x, int y)
a koordinátákkal ellátott cella tartalmának (szövegének) színét adja vissza (x, y)
.
Példa:
Color textColor = getCellTextColor(1, 3);
Az Ön kényelme érdekében számos módszer létezik setCellValueEx()
különböző paraméterkészletekkel:
void setCellValueEx(int x, int y, Color cellColor, String value)
beállítja a cella háttérszínét és szövegét a és a (x, y)
koordinátákkal .cellColor
value
Példa:
setCellValueEx(0, 2, Color.BLUE, "56");
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)
beállítja a cella háttérszínét, szövegét és szövegszínét a , , és a (x, y)
koordinátákkal .cellColor
value
textColor
Példa:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);
beállítja a cella háttérszínét, szövegét, szövegszínét és szövegméretét a , , , és a (x, y)
koordinátákkal .cellColor
value
textColor
textSize
Példa:
setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
2. Színekkel való munka
A CodeGym játékmotornak van egy speciális Color
típusa, amely 148 színhez tartalmaz egyedi értékeket. Különleges értéke is van NONE
, amely a szín hiányát jelzi.
Példák a színekkel való munkára
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.
Egy cellát pirosra színezhet a következő paranccsal:
setCellColor(0, 2, Color.RED);
A következő paranccsal ellenőrizheti, hogy egy cella bizonyos színű-e:
if (getCellColor(0,2) == Color.GREEN)
{
}
Néha előfordulhat, hogy minden lehetséges színből be kell szereznie egy tömböt. Ehhez használja a values()
módszert.
Példa:
// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();
A színindex beszerzése a színpalettán nagyon egyszerű – csak használja a következő ordinal()
módszert:
Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red
int blueIndex = Color.BLUE.ordinal(); // Index of the color blue
Könnyen színt kaphat az indexe alapján is:
// The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];
3. Párbeszédpanelek
A játék végén tudatnunk kell a játékossal, hogy nyert-e vagy veszített. Erre és más alkalmakra a CodeGym játékmotor rendelkezik egy speciális void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
módszerrel, amely egy párbeszédpanelt jelenít meg az üzenettel message
.
Ennek a módszernek a paraméterei a következők:
cellColor
a párbeszédpanel háttérszínemessage
az üzenet szövegetextColor
az üzenet szövegének színetextSize
az üzenet szövegének mérete
A párbeszédpanel bezárul, ha a felhasználó lenyomja a szóköz billentyűt, vagy rákattint az egérrel.
Példa a metódus meghívására:
// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);
4. Hasznossági módszerek
Játékok írásakor gyakran használ véletlenszerű számokat. A véletlen számok megszerzésének megkönnyítése érdekében használhatja a játékmotor segédprogramjait:
int getRandomNumber(int max)
egy véletlen számot ad vissza től 0
-ig (max–1)
.
int getRandomNumber(int min, int max)
egy véletlen számot ad vissza től min
-ig (max–1)
.
5. JDK 11+
Amikor a programot az IntelliJ IDEA-ból futtatja, a Game osztályt öröklő osztály a következő hibát generálhatja:
Error: JavaFX runtime components are missing, and are required to run this application
Ebben az esetben minden ilyen osztálynál egyszer végre kell hajtania az alábbi lépéseket:
- Nyissa meg a Futtatás → Konfiguráció szerkesztése menüpontot
- A virtuálisgép-beállítások értékéhez írja be a következőket:
--module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base
FIGYELEM:
Az IntelliJ IDEA legújabb verzióiban a „VM-beállítások” mező alapértelmezés szerint nem jelenik meg. Megjelenítéséhez nyomja meg az ALT+V billentyűkombinációt
- Nyomja meg: Alkalmaz → OK
- Futtassa a játékot.