Класс PIXI.Application является
центральным элементом библиотеки PixiJS для создания рендеринга сцены.
Он инкапсулирует создание рендерера, основного контейнера сцены
(stage) и цикла анимации (ticker), обеспечивая
удобную стартовую точку для разработки интерактивной графики и игр.
Для инициализации нового приложения используется конструктор:
const app = new PIXI.Application(options);
Параметр options — объект с настройками, позволяющий
контролировать поведение рендерера и приложения в целом. Если
options не передан, создается приложение с настройками по
умолчанию.
width и height
Определяют размеры канваса в пикселях. По умолчанию
800x600.
const app = new PIXI.Application({ width: 1024, height: 768 });view Позволяет передать уже
существующий <canvas> элемент. Если не указан,
создается новый.
const canvas = document.getElementById('myCanvas');
const app = new PIXI.Application({ view: canvas });backgroundColor Устанавливает цвет
фона сцены. Принимает числовое значение в формате
0xRRGGBB.
const app = new PIXI.Application({ backgroundColor: 0x1099bb });transparent Логическое значение,
указывающее, будет ли фон прозрачным. При true
backgroundColor игнорируется.
const app = new PIXI.Application({ transparent: true });resolution Задает разрешение
рендерера (плотность пикселей). Полезно для поддержки дисплеев с высоким
DPI.
const app = new PIXI.Application({ resolution: window.devicePixelRatio || 1 });autoDensity При true
автоматически масштабирует канвас под resolution.
const app = new PIXI.Application({ resolution: 2, autoDensity: true });antialias Включение сглаживания для
рендерера. Особенно заметно при работе с линиями и кривыми.
const app = new PIXI.Application({ antialias: true });app.stage — корневой контейнер сцены,
куда добавляются все спрайты и графические объекты.app.renderer — экземпляр рендерера
(WebGL или Canvas), предоставляющий методы для управления канвасом.app.ticker — цикл анимации,
позволяющий подписываться на обновления сцены с частотой кадров по
умолчанию 60 FPS.Пример добавления спрайта и запуска анимации:
const sprite = PIXI.Sprite.from('assets/image.png');
sprite.x = 100;
sprite.y = 100;
app.stage.addChild(sprite);
app.ticker.add((delta) => {
sprite.rotation += 0.01 * delta;
});
Иногда требуется доступ к рендереру напрямую для тонкой настройки:
app.renderer.backgroundColor = 0xff0000;
app.renderer.resize(1280, 720);
Метод resize изменяет размеры канваса и автоматически
корректирует stage для нового масштаба.
Класс Application интегрирует
PIXI.Ticker, который управляет обновлением
сцены. Можно добавлять функции с разными приоритетами:
app.ticker.add((delta) => {
// код анимации
}, PIXI.UPDATE_PRIORITY.HIGH);
Поддерживается управление временем через delta, что
обеспечивает плавное движение объектов при изменении FPS.
new PIXI.Application
предпочтительнее ручного создания рендерера и stage, так как упрощает
настройку и управление жизненным циклом сцены.autoDensity и resolution
критично для корректного отображения на Retina-дисплеях.ticker позволяет объединять несколько анимаций без
необходимости писать собственный цикл
requestAnimationFrame.const app = new PIXI.Application({
width: 1280,
height: 720,
backgroundColor: 0x222222,
resolution: window.devicePixelRatio || 1,
autoDensity: true,
antialias: true,
transparent: false
});
document.body.appendChild(app.view);
const container = new PIXI.Container();
app.stage.addChild(container);
const graphics = new PIXI.Graphics();
graphics.beginFill(0xffff00);
graphics.drawCircle(200, 200, 50);
graphics.endFill();
container.addChild(graphics);
app.ticker.add((delta) => {
graphics.x += 1 * delta;
});
Этот пример демонстрирует создание приложения с кастомными параметрами, добавление контейнера и графики, а также простую анимацию с использованием ticker.