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 лекція
Недоступна
Створюємо головний клас гри
Щоб запустити гру, створи клас FirstGame і успадкуй його від класу Game. Також перевизнач метод "ігрового рушія" — initialize(). Спробуй запустити на виконання клас FirstGame і подивись, що вийшло.

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 лекція
Недоступна
Відображаємо корабель
Спробуймо намалювати просту фігуру на ігровому полі. Тобі потрібно перевизначити метод initialize() класу Game і в цьому методі задати розмір ігрового поля (5х7) за допомогою методу setScreenSize(int, int). Також потрібно викликати метод showShip(), який малює корабель.

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 лекція
Недоступна
Проста програма
А тепер навчимося фарбувати клітини й виводити в них текст. Потрібно вивести слово JAVARUSH. Спочатку перевизнач метод initialize() класу Game і задай у ньому розмір поля (8x3). Відтак за допомогою методу setCellValueEx(int, int, Color, String) виведи слово в одну лінію. Цей метод зафарбовує клітину