JavaRush /Курси /Java Syntax Zero /Ігровий рушій

Ігровий рушій

Java Syntax Zero
Рівень 20 , Лекція 2
Відкрита

1. Створення першої гри на ігровому рушії

Будь-яка реалізація комп'ютерної гри розробником має три стадії:

  1. Ініціалізація гри. Сюди можна віднести різні підготовчі дії: визначення розміру й промальовування ігрового поля, створення й установлення ігрових об'єктів у початкове положення, а також будь-які інші дії, що їх потрібно виконати на початку гри.
  2. Ігровий процес. До цієї стадії можна віднести рух ігрових об'єктів, дії гравця, облік зароблених очок, а також будь-які інші дії, що їх потрібно виконувати з певною періодичністю або після натискання кнопок.
  3. Завершення гри. Сюди можна віднести зупинку анімації, повідомлення про перемогу/поразку, а також будь-які інші дії, що їх потрібно виконати наприкінці гри.

Зараз ми послідовно переглянемо всі три кроки й подивимось, як ігровий рушій JavaRush допоможе спростити цей процес.


2. Ініціалізація гри

Процес ініціалізації гри за допомогою ігрового рушія JavaRush складається лише із двох кроків:

Крок 1. Створюємо основний клас гри

Для створення своєї гри на основі ігрового рушія JavaRush вам потрібно створити клас і успадкувати його від класу Game (com.javarush.engine.cell.Game). Це надасть вашому класу можливість викликати методи ігрового рушія, а рушій отримає можливість викликати методи вашого класу. Приклад:

import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

Крок 2. Перевизначаємо метод initialize()

У методі initialize() відбуватимуться всі дії, необхідні для старту гри: створення ігрового поля, створення всіх ігрових об'єктів і т. п. Вам потрібно просто оголосити цей метод у класі, успадкованому від класу Game. Приклад:

import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {
  @Override
  public void initialize() {
     // Тут виконуємо всі дії щодо ініціалізації гри та її об'єктів
  }
}

Метод initialize() — це аналог методу main(): саме з нього починається виконання всього вашого коду, написаного для гри.



3. Створення ігрового поля

Процес створення ігрового поля теж складається лише із двох кроків:

Крок 1. Ділимо ігрове поле на клітини

Ігровий рушій поділяє все ігрове поле на клітини. Мінімальний розмір 3×3, максимальний — 100×100.

Ігровий екран має фіксований розмір. Його можна поділити на різну кількість клітин. Наприклад, ширина 7 і висота 9:

Зверніть увагу, що нумерація клітин починається з верхнього лівого кута.

Для того щоб задати розмір ігрового поля, скористайтеся методом void setScreenSize(int width, int height). Він задає розмір ігрового поля. Як параметри отримує кількість клітин по горизонталі (width) і по вертикалі (height). Зазвичай цей метод викликається один раз під час запуску гри. Приклад:

import com.javarush.engine.cell.Game;

public class MySuperGame extends Game {
   @Override    public void initialize()
   {
      // задаємо розмір поля 7x9 клітин
      setScreenSize(7, 9);
      ...
   }
}

У процесі написання гри може виникнути потреба отримати поточні значення ширини й висоти ігрового поля. Для цього стануть у пригоді методи int getScreenWidth() і int getScreenHeight().

Крок 2. Вмикаємо/вимикаємо сітку (необов'язково)

Якщо вам не подобається, що на вашому ігровому полі відображається чорна сітка, яка розділяє клітини, її можна вимкнути.

Метод void showGrid(boolean isShow) вмикає/вимикає сітку, що розділяє клітини. За замовчуванням сітка відображається. Щоб вимкнути її, викличте цей метод із параметром false:

showGrid(false);

Результат:

Щоби знову ввімкнути сітку, викличте

showGrid(true);

Результат:



4. Примітивна програма

Спробуймо написати дуже примітивну гру, що використовує ігровий рушій JavaRush. Вона буде виконувати 3 дії:

  1. Поділяти ігрове поле на 9 клітин: 3×3
  2. Вимикати сітку — лінії між клітинами
  3. Центральну клітину фарбувати в синій колір і писати там літеру Х.

Ця програма матиме такий вигляд:

public class MySuperGame extends Game
{
   @Override
   public void initialize()
   {
      // Створюємо ігрове поле 3x3 клітини
      setScreenSize(3, 3);
      // Вимикаємо відображення сітки
      showGrid(false);
      // Змінюємо фон центральної клітини на синій і відображаємо в ній "Х"
      setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
   }
}

У цьому прикладі задається розмір ігрового поля 3х3, вимикається відображення сітки й у центрі встановлюється помаранчевий символ Х розміром у пів клітини на синьому фоні. Це буде перше, що побачить гравець після запуску гри.


Коментарі (11)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
7 квітня 2025
Хто стикнувся з проблемою імпорту - перейдіть в структуру проєкту та додайте файл game-engine.jar як набір бібліотек (файл є в структурі проєкту). Після цього все запрацює
Viacheslav B. Рівень 1
9 травня 2024
IDEA - скаржиться Cannot resolve symbol 'javarush'

import com.javarush.engine.cell.Game;
7 квітня 2025
Відкрийте структуру проєкту, там буде файлик з назвою game-engine.jar. Потрібно натиснути на нього правою кнопкою та обрати Add as Library, щоб додати в проєкт як набір бібліотек. Після цього імпорт все побачить.
Pavlo Kezin Рівень 23
26 жовтня 2023
Корочше я здався, так і не зміг налаштувати цю ... Просто вирішив задачі покроково всліпу. "Дякую", що не даєте пропустити цей рівень.
Зепп Бранниган Рівень 41 Moderator
30 жовтня 2023
Встановіть наш новий плагін, будь ласка.
Віталій Рівень 32
7 жовтня 2022
потрбіна допомога, при спробі запуску бачу напис cannot access javafx.application.Application class file for javafx.application.Application not found
Зепп Бранниган Рівень 41 Moderator
7 жовтня 2022
Вам необхідно встановити бібліотеку javafx за цією інструкцією (п.7).
FAUST_ua Рівень 29
6 жовтня 2022
Допогли такі матеріали: 1) відео - https://www.youtube.com/watch?v=Qn5pKWkaGps 2) коментарі - https://javarush.com/help/63540 Хоч і працює але кожен раз треба прописувати під нові задачки. IntelliJ IDEA: Run - Edit configurations - Modify options - Add VM options - code: "--module-path "C:\Program Files\Java\javafx-sdk-19\lib //або ваш подібний" --add-modules javafx.controls,javafx.fxml" Apply - Ok - Run
Artem Рівень 30
29 вересня 2022
Як позбутися цієї помилки? Error: JavaFX runtime components are missing, and are required to run this application
Зепп Бранниган Рівень 41 Moderator
30 вересня 2022
Вам треба встановити бібліотеку javaFX за цією інструкцією (п.7).
21 листопада 2022
Найлегший спосіб це створити новий проект JavaFX, вибрати усі бібліотеки, ініціалізувати плагін JavaRush