Створення ігрового GUI
Мабуть, кожна гра потребує відображення певної інформації на дисплей. Це можуть бути показники здоров’я персонажа, стан умінь, кількість ходів тощо. Ігровий рушій Meowui підтримує малювання будь-яких панелей поверх ігрової сцени. Проте, через неможливість створення універсального GUI, реалізувати його для своїх потреб мусить самостійно розробник гри.
Користувацький клас ігрового інтерфейсу повинен бути успадкований від IGameUI, а вказівник на об’єкт цього класу, необхідно закріпити до конкретної сцени.
Так як у грі, до якої пишеться ця інструкція, немає сцен зі своїм унікальним інтерфейсом, то його створення і оновлення відбувається в базовому для всіх сцен у грі IBaseScene. Вказівник на користувацький клас GUI пропонується кешувати для того, щоб уникати додаткового приведення типу в кожного кадрі.
Оновлення GUI відбувається кожен кадр автоматично ігровим рушієм. Якщо потрібно змінити показники, які відображаються в цьому GUI, тоді найкраще це робити у методі update ігрової сцени.
Малювання інтерфейсу відбувається у методі onDraw користувацького класу GUI. Цей метод оголошено чисто віртуальним у базовому класі та є обов’язковим до реалізації розробником. Клас GUI може відобразити будь-яку графіку, яку тільки зможе вивести драйвер графіки Meowui. Це можуть бути, як стандартні віджети, так і будь-які інші користувацькі. В тому числі з власними спрайтами.
Для прикладу я реалізую дуже простий графічний інтерфейс, в якому буде відображатися лише одна панель з текстом та лічильником зайців, які було створено персонажем в обох сценах.
Класи GUI пропонується створювати в окремому каталозі. Я створив папку по шляху simple_rpg/ui. В цій папці знаходиться єдиний, для всіх ігрових сцен, клас ігрового інтерфейсу з назвою BaseUI. Відкрийте файл цього класу, та уважно ознайомтесь з кодом і коментарями, щоб зрозуміти, як він функціонує.