О чем этот пример
Вывод текста на экран — одна из базовых, но критически важных задач в разработке игр. Будь то счётчик очков, диалоговое окно или название уровня, без текста не обойтись. Этот урок покажет вам самый простой способ добавить текстовый объект в вашу игру на Phaser 3, используя встроенный класс `Text`. Вы научитесь создавать объект, размещать его на сцене и получите ключ к пониманию его внутренней структуры для дальнейшей настройки.
Версия Phaser: код и демо в этой статье рассчитаны на Phaser 3.90.0.
Живой запуск
Ниже встроен рабочий билд примера. Оригинальный источник: GitHub.
Исходный код
class Example extends Phaser.Scene
{
create ()
{
const t = this.add.text(100, 100, 'Phaser');
console.log(t);
}
}
const config = {
type: Phaser.CANVAS,
width: 800,
height: 600,
parent: 'phaser-example',
scene: Example
};
const game = new Phaser.Game(config);
Создание текстового объекта
Основной метод для добавления текста в сцену Phaser — this.add.text(). Он создаёт игровой объект типа Text и сразу добавляет его на текущий слой отображения.
const t = this.add.text(100, 100, 'Phaser');
В этом вызове:
* Первый аргумент (100) — это координата X (в пикселях) для позиционирования текста относительно левого края сцены.
* Второй аргумент (100) — это координата Y (в пикселях) для позиционирования относительно верхнего края сцены.
* Третий аргумент ('Phaser') — сама текстовая строка, которая будет отображена. Это обязательный параметр.
Объект `t, возвращаемый методом, является экземпляромPhaser.GameObjects.Text` и содержит все свойства и методы для управления внешним видом и поведением этого текста (шрифт, цвет, выравнивание и т.д.).
Понимание структуры объекта Text
После создания объекта полезно заглянуть внутрь, чтобы понять, с чем вы работаете. Для этого в примере используется console.log().
console.log(t);
Вывод этой команды в консоль браузера (F12) раскроет полную иерархию свойств созданного текстового объекта. Вы увидите:
* **Свойства трансформации:** `x,y,scaleX,scaleY,angle` — отвечают за положение и отображение на сцене.
* **Стиль текста:** style — вложенный объект, содержащий fontFamily, fontSize, color, backgroundColor и многие другие параметры оформления.
* **Свойства origin:** originX, originY — определяют точку привязки (якорь) объекта, вокруг которой происходят вращение и масштабирование. По умолчанию это (0, 0) — левый верхний угол.
* **Прочие флаги и состояния:** visible, active, scrollFactor и другие.
Изучение этого вывода — лучший способ узнать, какие свойства доступны для изменения в следующих шагах разработки.
Конфигурация игры и сцены
Код примера работает в рамках стандартной конфигурации Phaser. Ключевой момент — регистрация вашего класса сцены в конфиге игры.
const config = {
type: Phaser.CANVAS,
width: 800,
height: 600,
parent: 'phaser-example',
scene: Example // Наш класс сцены, содержащий create()
};
const game = new Phaser.Game(config);
* type: Указывает рендерер. Phaser.CANVAS использует Canvas API, Phaser.WEBGL — более производительный WebGL.
* width / height: Задают размер игрового поля (viewport).
* parent: ID HTML-элемента, в который будет встроен canvas игры. Если элемента с таким ID нет, он будет создан автоматически.
* scene: Здесь передаётся класс нашей сцены Example. Именно в его методе create() и выполняется код по созданию текста. Phaser сам создаст экземпляр этого класса и вызовет его методы жизненного цикла (preload, create, update).
Что попробовать дальше
Вы освоили фундаментальную операцию — создание текстового объекта в Phaser 3. Теперь у вас есть точка входа для отображения любой текстовой информации в игре. Для экспериментов попробуйте изменить координаты `xиyпри создании текста, чтобы переместить его в другой угол экрана. Используйте данные изconsole.log(t), чтобы найти свойствоt.text` и динамически менять содержимое надписи уже после её создания, например, по нажатию клавиши.
