Silnik gry

All lectures for PL purposes
Poziom 1 , Lekcja 1125
Dostępny

1. Pisanie pierwszej gry na silniku gry

Podczas wdrażania dowolnej gry komputerowej wyróżnia się trzy etapy:

  1. 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.
  2. 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.
  3. 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 falsejako 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:

  1. Podzieli pole gry na 9 komórek: 3×3
  2. Wyłączy siatkę (linie między komórkami)
  3. Centralna komórka zostanie pomalowana na niebiesko i Xbę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 Xw 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.


Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION