我正在制作一个游戏,将单位数据存储在 JSON 文件units.json 中,并在 preload()
函数中将其加载到游戏中。我还有一个名为 setupUnitTextures()
的函数,它会遍历 JSON 中的列表并加载所有单元。问题是,我在调用此函数时收到错误,因为 JSON 尚未加载。这是 preload() 函数:
function preload() {
game.load.json('units', 'units.json');
game.load.spritesheet('archer', 'assets/archer.png', 8, 8);
setupUnitTextures();
}
我需要的是一种回调方法,因此当加载 JSON 时,它会通过调用 setupUnitTextures() 函数来加载纹理。有什么办法可以做到这一点吗?
最佳答案
我的建议(我认为这也是 Phaser 开发的一般建议)是有另一个状态来预加载稍后需要的任何资源,然后您将预加载。
在某些模板中,这可能意味着具有引导状态,然后是预加载器状态。这通常是生成加载条的方式。
或者,您可能想查看Phaser's asset pack example作为从 JSON 文件加载大量资源的替代方法。
关于javascript - Phaser.io 加载时的 JSON 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36401371/