1. Praca z komórkami boiska

To wspaniale, że możemy podzielić boisko na komórki. Ale co możemy zrobić z samymi komórkami?

Dla każdej komórki pola gry możemy ustawić:

  • kolor komórki (kolor tła komórki);
  • tekst (może to być tekst lub liczba);
  • kolor tekstu;
  • rozmiar tekstu jako procent rozmiaru komórki.

Rozważmy metody pracy z komórkami pola gry:

void setCellColor(int x, int y, Color color)ustawia kolor komórki o współrzędnych (x, y)równych color.

Przykłady:

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

Color getCellColor(int x, int y)zwraca kolor komórki ze współrzędnymi (x, y).

Przykład:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)przypisuje tekst String valuedo komórki ze współrzędnymi (x, y).

Przykłady:

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

String getCellValue(int x, int y)zwraca tekst zawarty w komórce ze współrzędnymi (x, y).

Przykłady:

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

void setCellTextSize(int x, int y, int size)ustawia rozmiar tekstu w komórce o współrzędnych (x, y), gdzie sizejest wysokością tekstu jako procentem wysokości komórki.

Przykład:

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

int getCellTextSize(int x, int y)zwraca rozmiar zawartości komórki ze współrzędnymi (x, y).

Przykład:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)przypisuje numer int valuedo komórki ze współrzędnymi (x, y).

Przykłady:

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

int getCellNumber(int x, int y)zwraca liczbę zawartą w komórce ze współrzędnymi (x, y). Jeśli komórka nie zawiera liczby, zwraca 0.

Przykłady:

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

void setCellTextColor(int x, int y, Color color)ustawia kolor zawartości (tekstu) komórki ze współrzędnymi (x, y).

Przykłady:

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

Color getCellTextColor(int x, int y)zwraca kolor zawartości (tekstu) komórki ze współrzędnymi (x, y).

Przykład:

Color textColor = getCellTextColor(1, 3);

Dla Twojej wygody istnieje wiele setCellValueEx()metod z różnymi zestawami parametrów:

void setCellValueEx(int x, int y, Color cellColor, String value)ustawia kolor tła i tekst komórki o współrzędnych (x, y)odpowiednio cellColori value.

Przykład:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)ustawia kolor tła, tekst i kolor tekstu komórki o współrzędnych równych (x, y)odpowiednio cellColor, value, i textColor.

Przykład:

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

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);ustawia kolor tła, tekst, kolor tekstu i rozmiar tekstu komórki o współrzędnych równych (x, y)odpowiednio cellColor, value, textColor, i textSize.

Przykład:

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


2. Praca z kolorem

Silnik gry CodeGym ma specjalny Colortyp, który zawiera unikalne wartości dla 148 kolorów. Ma również specjalną NONEwartość, która reprezentuje brak koloru.

Przykłady pracy z kolorem

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.

Możesz pokolorować komórkę na czerwono za pomocą polecenia:

setCellColor(0, 2, Color.RED);

Możesz sprawdzić, czy komórka ma określony kolor za pomocą polecenia takiego jak:

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

Czasami może być konieczne uzyskanie tablicy wszystkich możliwych kolorów. Aby to zrobić, użyj values()metody.

Przykład:

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

Uzyskanie indeksu koloru w palecie kolorów jest bardzo łatwe — wystarczy użyć ordinal()metody:

Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red

int blueIndex = Color.BLUE.ordinal(); // Index of the color blue

Możesz także łatwo uzyskać kolor według jego indeksu:

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


3. Okna dialogowe

Na koniec gry musimy poinformować gracza, czy wygrał, czy przegrał. Na tę i inne okazje silnik gry CodeGym ma specjalną void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metodę, która wyświetla okno dialogowe z messagekomunikatem.
Parametrami tej metody są:

  • cellColorjest kolorem tła okna dialogowego
  • messagejest treść wiadomości
  • textColorto kolor tekstu wiadomości
  • textSizeto rozmiar tekstu wiadomości

Okno dialogowe zamyka się samo, jeśli użytkownik naciśnie spację lub kliknie okno dialogowe myszą.

Przykład wywołania tej metody:

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


4. Metody użytkowe

Podczas pisania gier będziesz często używać liczb losowych. Aby ułatwić sobie zdobywanie liczb losowych, możesz skorzystać z narzędzi narzędziowych silnika gry:

int getRandomNumber(int max)zwraca losową liczbę od 0do (max–1)włącznie.

int getRandomNumber(int min, int max)zwraca losową liczbę od mindo (max–1)włącznie.


5. JDK 11+

Podczas uruchamiania programu z IntelliJ IDEA klasa, która dziedziczy klasę Game, może wygenerować następujący błąd:

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

W takim przypadku dla każdej takiej klasy musisz wykonać te czynności jeden raz:
  1. Otwórz UruchomEdytuj konfigurację
  2. Jako wartość opcji maszyny wirtualnej wpisz:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    UWAGA:

    W ostatnich wersjach IntelliJ IDEA pole „Opcje maszyny wirtualnej” nie jest domyślnie wyświetlane. Aby go wyświetlić, naciśnij klawisze ALT+V

  3. Naciśnij: ZastosujOK
  4. Uruchom grę.