Я делаю игру в 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, Firefox и Opera, и каждый раз, когда я открываю на странице, кажется, случайная ошибка, или загрузить фон и работать нормально. Я использую WAMP для локального размещения страницы.
Спасибо за ответ, это действительно помогло! Однако в первый раз, когда я запускаю игру перед обновлением страницы, я получаю сообщение об ошибке «Phaser.Loader - активная загрузка отменена/сброшена» обновление исправляет это, но это не идеально. – Melkor
Вы пытаетесь загрузить любые другие активы, отличные от тех, которые вы предоставили в примере? Вероятно, это связано с тем, что Phaser загружает что-то, пока загружаются другие активы. Вы можете попытаться предотвратить предупреждение, вызвав 'game.load.reset()' *** или *** 'game.load.reset (true)' (жесткий сброс) в начале 'create()' функция. –
Я загружаю изображения в функцию предварительной загрузки. Добавление сброса к функции создания не изменило ошибок. У меня также есть ошибка: «paddle undefined». Paddle - это спрайт, определенный в loadComplete. Однако, когда я пытаюсь получить к нему доступ из обновления, я получаю сообщение об ошибке, которое не определено. – Melkor