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