В PixiJS основой визуализации является объект
Application, который управляет циклом рендеринга
сцены и обработкой анимаций. Контроль над этим циклом позволяет
оптимизировать производительность и реализовывать функции паузы и
возобновления.
Методы stop() и
start() встроены в
Application и управляют внутренним тикером
(ticker), который вызывает перерисовку сцены и обновление
объектов каждый кадр.
const app = new PIXI.Application({ width: 800, height: 600 });
document.body.appendChild(app.view);
stop()Метод stop() останавливает тикер
приложения. При этом:
ticker, больше не
выполняются.Пример использования:
app.stop(); // остановка рендеринга
Этот метод полезен для реализации пауз в играх или при временной приостановке анимаций для снижения нагрузки на систему.
start()Метод start() возобновляет работу
тикера. После вызова:
ticker,
снова выполняются.stop() для динамического
управления циклом рендеринга.Пример:
app.start(); // возобновление рендеринга
TickerPixiJS использует объект PIXI.Ticker
для управления обновлением каждого кадра. Application
автоматически создает тикер при инициализации:
console.log(app.ticker); // экземпляр PIXI.Ticker
Методы stop и start фактически вызывают
ticker.stop() и ticker.start(), что делает
возможным управление всеми анимациями, привязанными к
тикеру:
// Добавление пользовательской функции в тикер
app.ticker.add((delta) => {
sprite.rotation += 0.1 * delta;
});
// Остановка всех обновлений
app.stop();
// Возобновление работы тикера
app.start();
function pauseGame() {
app.stop();
}
function resumeGame() {
app.start();
}
Оптимизация производительности Если сцена статична, нет смысла обновлять рендер каждую секунду. Остановка тикера снижает нагрузку на GPU и CPU.
Управление сложными анимациями При использовании нескольких анимационных спрайтов или эффектов можно синхронизировать их работу через тикер. Остановка и запуск тикера позволяет контролировать все анимации одновременно.
stop() и start() напрямую. Клики и
взаимодействия остаются активными, если не отключать интерактивность
объектов.stop() не удаляет объекты. Они
остаются в сцене, их можно визуально модифицировать вручную.Date.now(), остановка тикера не влияет
на эти значения.stop() не останавливает анимации этих
библиотек.Можно создать отдельный PIXI.Ticker для отдельных
подсистем, сохраняя главный тикер приложения в состоянии
start:
const customTicker = new PIXI.Ticker();
customTicker.add((delta) => {
sprite.x += 5 * delta;
});
customTicker.start(); // запуск кастомного цикла
customTicker.stop(); // остановка кастомного цикла
Такой подход позволяет локально приостанавливать отдельные анимации без остановки всего приложения.
Методы stop и start обеспечивают
гранулированный контроль над рендерингом в PixiJS. Они
позволяют:
Эффективное использование этих методов становится основой для построения интерактивных и динамичных приложений на PixiJS, где контроль над визуальным циклом критичен.