我正在创建一个游戏,我将单位数据存储在JSON文件units.json中,我将其加载到(...)
函数的游戏中。我还有一个名为preload()
的函数,它通过JSON中的列表并加载所有单元。问题是,我在调用此函数时遇到错误,因为JSON尚未加载。这是preload()函数:
setupUnitTextures()
我需要的是一种回调方式,因此当加载JSON时,它会通过调用function preload() {
game.load.json('units', 'units.json');
game.load.spritesheet('archer', 'assets/archer.png', 8, 8);
setupUnitTextures();
}
函数来加载纹理。有没有办法做到这一点?
答案 0 :(得分:1)
我的建议,我认为也是Phaser开发的一般建议,就是建立另一个状态,预先加载所需的资产,然后再预加载。
在某些模板中,这可能意味着具有引导状态,然后是 Preloader 状态。这通常是生成加载条的方式。
或者,您可能希望将Phaser's asset pack example视为从JSON文件加载大量资产的替代方法。
答案 1 :(得分:0)
您可以使用onLoadComplete事件:
game.load.onLoadComplete.add(setupUnitTextures, this);