Для отображения простых геометрических фигур в PixiJS используется
класс PIXI.Graphics, который предоставляет
методы для рисования линий, заливок, кривых и фигур. Прямоугольник
является одной из базовых фигур и может быть нарисован с помощью метода
drawRect(x, y, width, height).
Пример создания простого прямоугольника:
const graphics = new PIXI.Graphics();
// Задаём цвет заливки
graphics.beginFill(0xff0000); // Красный цвет в формате 0xRRGGBB
// Рисуем прямоугольник
graphics.drawRect(50, 50, 200, 100);
// Завершаем заливку
graphics.endFill();
// Добавляем графику на сцену
app.stage.addChild(graphics);
Пояснение ключевых параметров метода
drawRect:
x и y — координаты верхнего левого угла
прямоугольника.width и height — ширина и высота фигуры в
пикселях.Для изменения цвета, прозрачности или границы используется комбинация
методов beginFill,
lineStyle и
endFill:
graphics.lineStyle(4, 0x0000ff, 1); // Толщина линии 4, синий цвет, полная непрозрачность
graphics.beginFill(0x00ff00, 0.5); // Зелёная заливка с 50% прозрачностью
graphics.drawRect(100, 100, 150, 75);
graphics.endFill();
PixiJS позволяет создавать прямоугольники с закруглёнными углами
через метод
drawRoundedRect(x, y, width, height, radius).
Аргумент radius определяет радиус скругления углов.
Пример:
const rounded = new PIXI.Graphics();
rounded.beginFill(0xffa500); // Оранжевая заливка
rounded.lineStyle(2, 0x000000); // Черная граница толщиной 2px
rounded.drawRoundedRect(200, 200, 180, 90, 20); // Скругление углов радиусом 20
rounded.endFill();
app.stage.addChild(rounded);
Особенности работы со скруглёнными прямоугольниками:
moveTo,
lineTo и
arcTo.Для придания фигурам более выразительного вида можно использовать
lineStyle, который позволяет настроить
толщину, цвет и прозрачность границы:
graphics.lineStyle(5, 0x123456, 0.8); // Толщина 5px, цвет #123456, 80% непрозрачность
graphics.beginFill(0xabcdef, 0.6);
graphics.drawRoundedRect(50, 250, 150, 100, 15);
graphics.endFill();
Методы beginFill и
lineStyle можно вызывать несколько раз для
создания фигур с множественными слоями и градиентами (через маски и
текстуры).
PixiJS допускает рисование нескольких фигур в одном объекте
Graphics, что позволяет создавать сложные
композиции без создания отдельных контейнеров:
const complex = new PIXI.Graphics();
// Первый прямоугольник
complex.beginFill(0xff0000);
complex.drawRect(10, 10, 100, 50);
complex.endFill();
// Скруглённый прямоугольник поверх
complex.beginFill(0x00ff00, 0.7);
complex.drawRoundedRect(50, 50, 120, 60, 10);
complex.endFill();
app.stage.addChild(complex);
Graphics и рисовать все элементы внутри
него.Graphics для каждой
фигуры, чтобы не перерисовывать всё сразу.Graphics с текстурами и спрайтами для
повышения FPS, особенно при большом количестве объектов на сцене.PixiJS позволяет делать фигуры интерактивными с помощью свойства
interactive и событий мыши:
const interactiveRect = new PIXI.Graphics();
interactiveRect.beginFill(0x008800);
interactiveRect.drawRect(300, 50, 120, 80);
interactiveRect.endFill();
interactiveRect.interactive = true;
interactiveRect.on('pointerdown', () => {
interactiveRect.tint = 0xff0000; // Меняем цвет при клике
});
app.stage.addChild(interactiveRect);
Такой подход позволяет создавать кнопки, панели и другие элементы интерфейса, полностью управляемые через графику PixiJS.