Phaser3 проверяет, запустилась ли предварительная загрузка - PullRequest
1 голос
/ 10 мая 2019

Я пытаюсь использовать socket.io с phaser, и у меня возникают проблемы с порождением игроков при подключении.Я уверен, что это потому, что изображение игрока не загружается, когда происходит соединение.Мне просто нужен способ проверить, выполнена ли функция предварительной загрузки.Примерно так:

function preload() {
    game.load.image('player', 'client/assets/player.png');

    let interval = setInterval(() => {
        if(LOADED) {
            loaded = true;
            clearInterval(interval);
        }
    }, 1);
}

Возможно ли что-то подобное, или есть другой подход?Спасибо.

РЕДАКТИРОВАТЬ:

Я могу заставить его работать так:

function preload() {
    game.load.image('player', 'client/assets/player.png');

    setTimeout(() => {
        loaded = true;
    }, 100);
};

И в функции, порождающей игрока:

let testI = setInterval(() => {
    console.log(loaded);
    if(loaded) {
        let test = game.add.sprite(0, 0, 'player');
        game.physics.enable(test, Phaser.Physics.ARCADE);
        test.body.gravity.y = 200;
        clearInterval(testI);
    }
}, 1);

Но это очень грязно и не очень хорошее решение

...