1. Написання першої гри на ігровому рушії
У будь-якої реалізації комп'ютерної гри зі сторони розробника є три стадії:
- Ініціалізація гри. Сюди можна віднести різні підготовчі дії: встановлення розміру та промальовування ігрового поля, створення та встановлення ігрових об'єктів у початкове положення, а також будь-які інші дії, які необхідно виконати на початку гри.
- Ігровий процес. Сюди можна віднести рух ігрових об'єктів, дії гравця, облік зароблених очок, а також будь-які інші дії, які потрібно виконувати з певною періодичністю або за натисканням кнопок.
- Завершення гри. Сюди можна віднести зупинку анімації, повідомлення про перемогу/поразку, а також будь-які інші дії, які необхідно виконати в кінці гри.
Зараз ми послідовно пройдемося по всіх трьох кроках і подивимося, як ігровий рушій CodeGym допоможе зробити цей процес простішим.
2. Ініціалізація гри
Процес ініціалізації гри за допомогою ігрового рушія CodeGym складається всього з двох кроків:
Крок 1: Створюємо основний клас гри
Для створення своєї гри на основі ігрового рушія CodeGym вам потрібно створити клас і успадкувати його від класу Game (com.codegym.engine.cell.Game). Це дасть вашому класу можливість викликати методи ігрового рушія, а рушій отримає можливість викликати методи вашого класу. Приклад:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Крок 2: Перевизначаємо метод initialize()
У методі initialize() відбуватимуться всі дії, необхідні для старту гри: створення ігрового поля, створення всіх ігрових об'єктів тощо. Вам потрібно просто оголосити цей метод у класі, успадкованому від класу Game. Приклад:
import com.codegym.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.codegym.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. Примітивна програма
Давайте напишемо дуже примітивну гру, яка використовує ігровий рушій CodeGym. Вона буде робити 3 дії:
- Розділить ігрове поле на 9 клітин: 3×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, відключається відображення сітки, і по центру встановлюється помаранчевий символ Х розміром у половину клітини на синьому фоні. Це буде перше, що побачить гравець при запуску гри.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ