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

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

Відкрита

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(): саме з нього починається виконання всього вашого коду, написаного для гри.


20
Задача
Java Syntax Zero,  20 рівень,  2 лекція
Недоступна
Створюємо головний клас гри
Створюємо головний клас гри

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);

Результат:


20
Задача
Java Syntax Zero,  20 рівень,  2 лекція
Недоступна
Відображаємо корабель
Відображаємо корабель

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, вимикається відображення сітки й у центрі встановлюється помаранчевий символ Х розміром у пів клітини на синьому фоні. Це буде перше, що побачить гравець після запуску гри.


20
Задача
Java Syntax Zero,  20 рівень,  2 лекція
Недоступна
Проста програма
Проста програма
Коментарі (11)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Андрій Андрушків FullStack Developer в IT Specialist
7 квітня 2025, 20:33
Хто стикнувся з проблемою імпорту - перейдіть в структуру проєкту та додайте файл game-engine.jar як набір бібліотек (файл є в структурі проєкту). Після цього все запрацює
Viacheslav B. System Administrator
9 травня 2024, 19:08
IDEA - скаржиться Cannot resolve symbol 'javarush'
import com.javarush.engine.cell.Game;
Андрій Андрушків FullStack Developer в IT Specialist
7 квітня 2025, 20:30
Відкрийте структуру проєкту, там буде файлик з назвою game-engine.jar. Потрібно натиснути на нього правою кнопкою та обрати Add as Library, щоб додати в проєкт як набір бібліотек. Після цього імпорт все побачить.
Pavlo Kezin
Рівень 23
26 жовтня 2023, 13:33
Корочше я здався, так і не зміг налаштувати цю ... Просто вирішив задачі покроково всліпу. "Дякую", що не даєте пропустити цей рівень.
Зепп Бранниган Admin в JavaRushModerator
30 жовтня 2023, 10:22
Встановіть наш новий плагін, будь ласка.
Віталій
Рівень 32
7 жовтня 2022, 13:37
потрбіна допомога, при спробі запуску бачу напис cannot access javafx.application.Application class file for javafx.application.Application not found
Зепп Бранниган Admin в JavaRushModerator
7 жовтня 2022, 20:44
Вам необхідно встановити бібліотеку javafx за цією інструкцією (п.7).
FAUST_ua
Рівень 29
6 жовтня 2022, 16:48
Допогли такі матеріали: 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, 23:01
Як позбутися цієї помилки? Error: JavaFX runtime components are missing, and are required to run this application
Зепп Бранниган Admin в JavaRushModerator
30 вересня 2022, 20:25
Вам треба встановити бібліотеку javaFX за цією інструкцією (п.7).
21 листопада 2022, 19:39
Найлегший спосіб це створити новий проект JavaFX, вибрати усі бібліотеки, ініціалізувати плагін JavaRush