У меня есть следующий код для игры Phaser. Он просто используется для получения визуальной идеи для уровня, загружая информацию из файла JSON с помощью AJAX.Проблема загрузки активов Phaser из файла JSON
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>hello phaser!</title>
<script src="phaser.min.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="results"></div>
<script type="text/javascript">
var game = new Phaser.Game(1024, 768, Phaser.AUTO, '', { preload: preload, create: create,renderer:renderer});
var background;
function preload()
{
game.load.image('bg','bg.png');
game.load.image('mothership', 'bird.png');
game.load.image('turret','turret.png');
}
function create()
{
//game.add.sprite(31,725,"mothership");
//game.add.sprite(100,100,"turret");
//background=game.add.sprite(0,0,"bg");
//background.scale.setTo(5,7);
}
function renderer()
{
}
$.ajax({
url: "TestFile5.json",
dataType: 'json',
contentType:"application/json",
success: function(response) {
//here you can use the response
//response can be passed to what ever js file you need.
game.add.sprite(response.mothership.posx, response.mothership.posy, "mothership");
game.add.sprite(response.Turret0.posx, response.Turret0.posy, "turret");
game.add.sprite(response.Turret1.posx, response.Turret1.posy, "turret");
game.add.sprite(response.Turret2.posx, response.Turret2.posy, "turret");
},
error: function(response1){
alert('response error')
}
});
</script>
</Body>
</html>
Я загрузил это на мой интернет-сервер вместе с файлом JSON и изображений, но это, кажется, не загружать изображения с помощью функции game.add.sprite()
в функции обратного вызова AJAX. Я получаю экран с изображениями-заполнителями. Позиции правильные, но изображение не загружено. Что может быть причиной этого, и как я могу его исправить?
Можете ли вы привести пример Phaser, загружающего изображение, хранящееся в файле .json, расположенном в папке с активами – user3292309
, также я проверил средства разработки и не выдавал никаких предупреждений или ошибок. Так что код, который я дал, правильный – user3292309
Внутри вашей функции «успех» проверьте, действительно ли изображения загружены и находятся в кеше: game.cache.checkImageKey («турель»). Если ложь, то, вероятно, произошло состояние гонки (завершение ajax до того, как была сделана предварительная нагрузка). Если это правда, я все еще подозреваю проблему с областью. – PhotonStorm