Skip to content

Створення ігрового GUI

Мабуть, кожна гра потребує відображення певної інформації на дисплей. Це можуть бути показники здоров’я персонажа, стан умінь, кількість ходів тощо. Ігровий рушій Meowui підтримує малювання будь-яких панелей поверх ігрової сцени. Проте, через неможливість створення універсального GUI, реалізувати його для своїх потреб мусить самостійно розробник гри.

Користувацький клас ігрового інтерфейсу повинен бути успадкований від IGameUI, а вказівник на об’єкт цього класу, необхідно закріпити до конкретної сцени.

Так як у грі, до якої пишеться ця інструкція, немає сцен зі своїм унікальним інтерфейсом, то його створення і оновлення відбувається в базовому для всіх сцен у грі IBaseScene. Вказівник на користувацький клас GUI пропонується кешувати для того, щоб уникати додаткового приведення типу в кожного кадрі.

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

Малювання інтерфейсу відбувається у методі onDraw користувацького класу GUI. Цей метод оголошено чисто віртуальним у базовому класі та є обов’язковим до реалізації розробником. Клас GUI може відобразити будь-яку графіку, яку тільки зможе вивести драйвер графіки Meowui. Це можуть бути, як стандартні віджети, так і будь-які інші користувацькі. В тому числі з власними спрайтами.

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

Класи GUI пропонується створювати в окремому каталозі. Я створив папку по шляху simple_rpg/ui. В цій папці знаходиться єдиний, для всіх ігрових сцен, клас ігрового інтерфейсу з назвою BaseUI. Відкрийте файл цього класу, та уважно ознайомтесь з кодом і коментарями, щоб зрозуміти, як він функціонує.

← Наповнення сцени | Ігрове меню →