我正在用phaser进行游戏。我正在加载背景图片,其信息(文件位置)存储在JSON文件中。当我尝试加载它时,背景是黑色和空的,并且在控制台中,我得到:Phaser缓存加载问题
Phaser.Cache.getImage:在缓存中未找到密钥“background0”。
这里是我的代码中的相关摘录:
function create() {
//>Load JSON file and background images found inside the file
$.getJSON("levels.json", function(json) {
for (var i = 0; i < json.levels.length; i++) {
game.load.image('background' + i.toString(), json.levels[i].background);
}
game.load.start();
});
back_layer = game.add.group();
var i = 0;
var level_finished = 0;
$.getJSON("levels.json", function(json) {
if (i < json.levels.length) {
console.log("Level " + (i + 1).toString());
var current_background = back_layer.create(0, 0, 'background' + i.toString());
check = setInterval(function() {
if (level_finished == 1) {
i++;
current_background.destroy();
clearInterval(check);
}
}, 500)
}
});
}
这里是JSON文件:
{"levels":[
{
"background": "assets/img/Back.png",
"portals": [
{
"locationX": 400,
"locationY": 450,
"toX": 100,
"toY": 200,
"spinSpeed": 1
},
{
"locationX": 50,
"locationY": 200,
"toX": 100,
"toY": 450,
"spinSpeed": 2
}
]
}
]}
测试使用Chrome,火狐和Opera,我每次打开时间该页面,它似乎随机有错误,或加载的背景,并正常工作。我正在使用WAMP在本地托管该页面。
谢谢你的答案,它真的帮助!然而,在刷新页面之前,我第一次运行游戏时,出现错误“Phaser.Loader - 活动加载取消/重置”刷新修复了此问题,但这并不理想。 – Melkor
您是否尝试加载除您在示例中提供的资产之外的其他任何资产?这可能是由Phaser在加载其他资源时加载某些内容引起的。你可以尝试通过在'create()'开头调用'game.load.reset()'***或***'game.load.reset(true)'(硬重置)来防止warn消息。功能。 –
我在我的预加载函数中加载图像。将重置添加到创建功能不会更改错误。我也有一个错误“桨未定义”。 Paddle是loadComplete中定义的一个精灵。但是,当我尝试从更新中访问它时,我得到一个未定义的错误。 – Melkor