В PixiJS текстовые объекты создаются с помощью класса
PIXI.Text, который поддерживает расширенные свойства
форматирования через объект style. Одним из мощных
инструментов стилизации текста является тень,
реализуемая через свойства dropShadow,
dropShadowColor, dropShadowAlpha,
dropShadowBlur, dropShadowAngle и
dropShadowDistance. Эти параметры позволяют создавать
реалистичные и выразительные эффекты тени для текста в 2D-графике.
dropShadow Булево значение
(true или false). Определяет, будет ли тень
применена к тексту.
dropShadow: truedropShadowColor Цвет тени в формате
CSS (#RRGGBB, rgb(), rgba() и
т.п.). Позволяет задавать любой оттенок тени.
dropShadowColor: "#000000" // чёрная теньdropShadowAlpha Прозрачность тени,
число от 0 до 1.
dropShadowAlpha: 0.5dropShadowBlur Радиус размытия тени
в пикселях. Чем выше значение, тем мягче тень.
dropShadowBlur: 4dropShadowAngle Угол падения тени в
радианах. Используется вместе с dropShadowDistance.
dropShadowAngle: Math.PI / 4 // 45 градусовdropShadowDistance Расстояние
смещения тени от текста в пикселях. Определяет, насколько далеко тень
будет «отставать» от текста по указанному углу.
dropShadowDistance: 5Создание текста с тенью происходит через объект
PIXI.TextStyle. Пример комплексного использования всех
параметров:
const style = new PIXI.TextStyle({
fontFamily: "Arial",
fontSize: 48,
fill: "#ffffff",
dropShadow: true,
dropShadowColor: "#000000",
dropShadowAlpha: 0.7,
dropShadowBlur: 6,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 8
});
const text = new PIXI.Text("Привет, PixiJS!", style);
text.x = 100;
text.y = 100;
app.stage.addChild(text);
В этом примере текст получает мягкую чёрную тень с прозрачностью 0.7, смещённую на 8 пикселей под углом 30 градусов.
dropShadowBlur контролирует мягкость
края тени. Малые значения дают резкий контур, большие — размытую тень,
создающую эффект свечения.dropShadowAlpha позволяет регулировать
насыщенность тени. При 1 тень полностью непрозрачна, при 0.2 — едва
заметна.dropShadowAngle и
dropShadowDistance позволяет создавать различные
направления освещения. Установка угла в 0 или π создаёт горизонтальные
смещения, π/2 — вертикальные, другие значения — диагональные.PixiJS не ограничивает количество текстовых объектов. Для создания
сложных эффектов, например многослойной тени, можно
использовать несколько текстовых объектов с разными параметрами
dropShadow. Это позволяет создавать имитацию свечения или
объёмной тени.
const glowStyle = new PIXI.TextStyle({
fontFamily: "Arial",
fontSize: 60,
fill: "#ffffff",
dropShadow: true,
dropShadowColor: "#ff0000",
dropShadowAlpha: 0.6,
dropShadowBlur: 12,
dropShadowDistance: 0
});
const glowText = new PIXI.Text("Светящийся текст", glowStyle);
glowText.x = 80;
glowText.y = 200;
app.stage.addChild(glowText);
В этом примере dropShadowDistance равен 0, а
dropShadowBlur увеличен, создавая эффект равномерного
свечения вокруг текста.
Использование тени увеличивает нагрузку на рендеринг, особенно при
больших шрифтах и высокой dropShadowBlur. Для
оптимизации:
dropShadowBlur для динамического текста.Параметры тени могут изменяться в процессе работы приложения. Это позволяет создавать анимацию движения тени или изменение её цвета под событие:
app.ticker.add((delta) => {
text.style.dropShadowDistance = 5 + 5 * Math.sin(Date.now() / 500);
text.style.dropShadowAngle = Math.PI / 4 + Math.sin(Date.now() / 1000);
});
Такой подход позволяет создавать эффекты пульсирующей тени, динамического освещения или движения источника света вокруг текста.
dropShadowBlur.Тщательная настройка параметров dropShadow превращает
обычный текст в выразительный визуальный элемент, существенно повышающий
качество интерфейса или игровой сцены в PixiJS.