Отрисовка кадров в phaser.js

134
02 августа 2021, 12:20

function update() { 
  if (roulette.circle.previousCircle) { 
    roulette.circle.previousCircle.destroy() 
  } 
 
  if (roulette.circle.previousLever) { 
    roulette.circle.previousLever.destroy(); 
  } 
 
  if (roulette.circle.currentStep === 100 && run) { 
    ball.run = true; 
  } 
 
  let circle = this.add.image(108, 110, `circle${roulette.circle.currentStep}`).setOrigin(0, 0).setScale(0.7); 
  let lever = this.add.image(200, 150, `lever${roulette.lever.currentStep}`).setOrigin(0, 0).setScale(0.7); 
 
  roulette.circle.method(); 
  roulette.lever.method(); 
  roulette.circle.previousCircle = circle; 
  roulette.circle.previousLever = lever; 
}

В Phaser.js есть функция update, которая и отвечает за все изменения. Как ограничить скорость её выполнения? Допустим, мне надо, чтобы она срабатывала в 2 раза реже

Answer 1

Воспользуйтесь функцией декоратором:

    function wrap(fn, howOften) {
        let count = 0;
        let lastRes;
        return function () {
            if (count % howOften === 0) {
                lastRes = fn.apply(this, arguments);
            }
            count++;
            return lastRes;
        }
    }
Использование:
    const update = wrap(phaser.update.bind(phaser), 2);
READ ALSO
Как вызвать функцию из динамически подгруженного JavaScript?

Как вызвать функцию из динамически подгруженного JavaScript?

Стоит задача подключить коммент сервер именно динамически, а потом вызвать функцию вызова из API сервера

201
Зачем нужен NPM если есть ресурс на CDN?

Зачем нужен NPM если есть ресурс на CDN?

Подскажите, зачем нужен NPM если есть ресурс на CDN? К примеру, хочу использовать какую-то библиотекуПо инструкции, могу установить через NPM, а могу...

171
Применение паттерна Модуль JS

Применение паттерна Модуль JS

Хотелось бы узнать побольше о методах применения паттерна Модуль, если можно на реальных примерахСпасибо

271