首页 > 解决方案 > Phaser3 检查预加载是否已运行

问题描述

我正在尝试将 socket.io 与移相器一起使用,但在连接时生成玩家时遇到了问题。我很确定这是因为连接发生时没有加载播放器的图像。我基本上只需要一种方法来检查预加载功能是否完成。像这样的东西:

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);

但它非常混乱,不是一个好的解决方案

标签: phaser-framework

解决方案


推荐阅读