TextStyle в PixiJS является фундаментальным инструментом
для создания и управления стилем текста в 2D-графике. Он определяет
визуальные свойства текста, такие как шрифт, размер, цвет, обводка,
выравнивание и многое другое. В PixiJS TextStyle тесно
связан с объектом PIXI.Text, который отображает текстовую
информацию на канве.
Объект создается с помощью конструктора PIXI.TextStyle и
принимает объект с настройками:
const style = new PIXI.TextStyle({
fontFamily: "Arial",
fontSize: 36,
fill: "#ff0000",
fontWeight: "bold",
align: "center",
stroke: "#000000",
strokeThickness: 4,
dropShadow: true,
dropShadowColor: "#000000",
dropShadowDistance: 6
});
Каждое свойство отвечает за отдельный визуальный аспект текста:
normal,
bold, bolder, lighter или
числовое значение.left, center, right.Arial.Свойство fill может быть не только одноцветным, но и массивом для создания линейного градиента:
const gradientStyle = new PIXI.TextStyle({
fontFamily: "Verdana",
fontSize: 48,
fill: ["#ff0000", "#00ff00", "#0000ff"], // градиент
align: "center"
});
Градиенты работают слева направо по строке текста и создают плавный переход между цветами.
Обводка (stroke и strokeThickness) помогает
выделить текст на сложном фоне. Тень (dropShadow) добавляет
объем и глубину:
const shadowStyle = new PIXI.TextStyle({
fontFamily: "Comic Sans MS",
fontSize: 50,
fill: "#ffffff",
stroke: "#000000",
strokeThickness: 5,
dropShadow: true,
dropShadowColor: "#555555",
dropShadowBlur: 4,
dropShadowAngle: Math.PI / 6,
dropShadowDistance: 10
});
y.wordWrap и wordWrapWidth
управляют автоматическим переносом текста на новую строку:const wrappedStyle = new PIXI.TextStyle({
fontSize: 24,
fill: "#333333",
wordWrap: true,
wordWrapWidth: 200
});
Свойства TextStyle можно изменять в любой момент, чтобы
обновлять отображение текста без пересоздания объекта:
text.style.fontSize = 60;
text.style.fill = "#00ff00";
text.style.fontWeight = "bold";
После изменения стиля объект автоматически перерисовывает текст с новыми параметрами.
TextStyle позволяет создавать базовые стили и расширять
их для разных элементов интерфейса:
const baseStyle = new PIXI.TextStyle({ fontFamily: "Arial", fontSize: 30, fill: "#ffffff" });
const titleStyle = new PIXI.TextStyle({ ...baseStyle, fontSize: 48, fontWeight: "bold" });
Это упрощает поддержку единого визуального языка приложения.
TextStyle поддерживает прозрачность через RGBA, а также интеграцию с
фильтрами PixiJS (PIXI.filters), что позволяет создавать
свечение, размытие, туман и другие эффекты поверх текста.
Для большого количества текстовых объектов рекомендуется использовать
BitmapText с TextStyle, так как это снижает нагрузку на
рендеринг, особенно при анимации и изменении цветов или размеров
текста.
TextStyle в PixiJS сочетает в себе гибкость CSS и
производительность графической библиотеки, позволяя создавать как
простые подписи, так и сложные динамические интерфейсы с визуальными
эффектами.