В библиотеке Phaser текстовые объекты создаются с
помощью класса Phaser.GameObjects.Text. Этот объект
позволяет гибко управлять отображением текста, задавая шрифт,
размер, цвет, выравнивание и декоративные эффекты.
Базовый синтаксис создания текста:
const text = this.add.text(x, y, "Пример текста", {
fontFamily: "Arial",
fontSize: "32px",
color: "#ffffff"
});
x и y — координаты текста на сцене."Пример текста" — строка, которая будет
отображаться.Свойство fontFamily задает тип шрифта. Можно
использовать стандартные системные шрифты или подключенные веб-шрифты
через CSS.
Пример использования нескольких шрифтов с резервным вариантом:
fontFamily: "Verdana, Arial, sans-serif"
Свойство fontSize управляет размером текста. Размер
задается в пикселях или относительных единицах:
fontSize: "24px"
Поддерживается использование CSS-подобных единиц, но чаще всего для игр применяются пиксели для точного позиционирования.
Цвет задается через свойство color в формате HEX,
CSS-цвета или RGB:
color: "#ff0000" // красный
color: "rgb(0,255,0)" // зеленый
color: "blue" // синий
Можно динамически менять цвет после создания объекта:
text.setColor("#00ffff");
Свойство align определяет выравнивание текста внутри
текстового блока:
align: "left" // по левому краю
align: "center" // по центру
align: "right" // по правому краю
Для многострочного текста выравнивание особенно важно, так как Phaser
автоматически переносит строки по символу \n.
Свойство shadow позволяет создавать эффект
тени, что увеличивает читаемость текста на фоне сложной
графики:
text.setShadow(xOffset, yOffset, color, blur, shadowStroke, shadowFill);
xOffset и yOffset — смещение тени по
осям.color — цвет тени.blur — размытие тени, числовое значение.shadowStroke — применять тень к обводке текста.shadowFill — применять тень к заливке текста.Пример с мягкой черной тенью:
text.setShadow(2, 2, "#000000", 4, false, true);
Все параметры можно объединить при создании объекта:
const title = this.add.text(400, 100, "Phaser 3", {
fontFamily: "Georgia, serif",
fontSize: "48px",
color: "#ffcc00",
align: "center",
stroke: "#000000",
strokeThickness: 3
});
title.setShadow(4, 4, "#000000", 6, true, true);
stroke — цвет обводки текста.strokeThickness — толщина обводки в пикселях.stroke и shadow, можно
создавать ярко выделяющиеся заголовки.Phaser позволяет динамически менять свойства текста:
text.setFontSize(36);
text.setFontFamily("Courier New");
text.setColor("#ff00ff");
text.setShadow(1, 1, "#555555", 2);
Эта возможность полезна для анимации интерфейсов, всплывающих подсказок или изменения состояния игры.
Основные параметры стиля текста в Phaser можно структурировать так:
| Свойство | Назначение |
|---|---|
fontFamily |
Шрифт текста |
fontSize |
Размер текста |
color |
Цвет текста |
align |
Выравнивание (left, center, right) |
stroke |
Цвет обводки текста |
strokeThickness |
Толщина обводки |
shadow |
Тень текста (setShadow) |
lineSpacing |
Интервал между строками |
wordWrap |
Перенос текста по ширине блока (width,
useAdvancedWrap) |
Эта комбинация позволяет создавать интерактивные, читаемые и визуально выразительные текстовые элементы в играх на Phaser.