1. Pisanie pierwszej gry na silniku gry
Podczas wdrażania dowolnej gry komputerowej wyróżnia się trzy etapy:
- Inicjalizacja gry. Obejmuje to różne czynności przygotowawcze: ustawienie rozmiaru pola gry i jego narysowanie, tworzenie i ustawianie obiektów gry w ich początkowej pozycji, a także wszelkie inne czynności, które należy wykonać na początku gry.
- Grać w gre. Może to obejmować przesuwanie obiektów w grze, działania graczy, zliczanie zdobytych punktów, a także wszelkie inne czynności, które muszą być wykonywane w regularnych odstępach czasu lub w odpowiedzi na kliknięcia przycisków i naciśnięcia klawiszy.
- Zakończenie gry. Może to obejmować zatrzymanie animacji, komunikat o wygranej/przegranej i wszelkie inne czynności, które należy wykonać na koniec gry.
Przejdziemy teraz przez wszystkie trzy etapy po kolei i zobaczymy, jak silnik gry CodeGym może ułatwić ten proces.
2. Inicjowanie gry
Gdy używasz silnika gry CodeGym, inicjalizacja gry składa się tylko z dwóch kroków:
Krok 1: Utwórz główną klasę gry
Aby stworzyć własną grę opartą na silniku gry CodeGym, musisz utworzyć klasę i uczynić ją rozszerzeniem klasy Game (com.codegym.engine.cell.Game). To da twojej klasie możliwość wywoływania metod w silniku gry , a silnik będzie mógł wywoływać metody twojej klasy . Przykład:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Krok 2: Zastąp initialize()
metodę
W initialize()
metodzie wykonujesz wszystkie czynności niezbędne do uruchomienia gry: tworzysz pole gry, tworzysz wszystkie obiekty gry itp. Wystarczy zadeklarować tę metodę w klasie, która dziedziczy klasę Game. Przykład:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
Metoda initialize()
jest analogiczna do main()
metody. Jest to punkt wejścia, z którego rozpoczyna się wykonywanie całego kodu gry.
3. Tworzenie pola gry
Tworzenie pola gry to również proces dwuetapowy:
Krok 1: Podziel pole gry na komórki
Silnik gry dzieli całe pole gry na komórki. Minimalny rozmiar to 3×3, a maksymalny to 100×100.
Rozmiar pola gry jest stały po utworzeniu. Wymiary poziome i pionowe nie muszą być takie same. Na przykład szerokość 7 i wysokość 9:
Należy pamiętać, że numeracja komórek zaczyna się od lewego górnego rogu.
Aby ustawić rozmiar pola gry, użyj void setScreenSize(int width, int height)
metody. Określa rozmiar pola gry. Jego parametrami jest liczba komórek w wymiarze poziomym ( width
) i pionowym ( height
). Zwykle jest wywoływany raz, gdy gra się rozpoczyna. Przykład:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
Podczas pisania gry może być konieczne uzyskanie aktualnej szerokości i wysokości pola gry. Odpowiednie metody to int getScreenWidth()
i int getScreenHeight()
.
Krok 2: Włącz/wyłącz siatkę (opcjonalnie)
Jeśli nie lubisz czarnej siatki oddzielającej komórki pola gry, możesz ją wyłączyć.
Metoda void showGrid(boolean isShow)
włącza/wyłącza siatkę oddzielającą komórki. Siatka jest wyświetlana domyślnie. Aby to wyłączyć, wywołaj tę metodę i podaj false
jako argument:
showGrid(false);
Wynik:
Aby ponownie włączyć siatkę, wywołaj metodę w następujący sposób:
showGrid(true);
Wynik:
4. Prymitywny program
Napiszmy bardzo prymitywną grę korzystającą z silnika gry CodeGym. Zrobi 3 rzeczy:
- Podzieli pole gry na 9 komórek: 3×3
- Wyłączy siatkę (linie między komórkami)
- Centralna komórka zostanie pomalowana na niebiesko i
X
będzie w niej zapisana litera.
Ostateczny kod wygląda tak:
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
W tym przykładzie pole gry jest ustawione na 3x3, siatka jest wyłączona, a pomarańczowa litera X
w połowie wysokości komórki jest umieszczona w środkowej komórce z niebieskim tłem. Będzie to pierwsza rzecz, którą zobaczy gracz po rozpoczęciu gry.
GO TO FULL VERSION