Javascript 如何将带有JSON文件的精灵表导入我的phaser游戏?

Javascript 如何将带有JSON文件的精灵表导入我的phaser游戏?,javascript,json,phaser-framework,sprite-sheet,Javascript,Json,Phaser Framework,Sprite Sheet,我正在使用phaser游戏引擎创建一个游戏。我创建了一个精灵表并下载了它。它是和256一起来的 × 带有我的框架的384.png文件和一个JSON文件,我假设其中包含关于如何分割框架的信息。我不知道如何将带有JSON文件的sprite表导入到我的preload()函数中。我尝试使用以下代码,但它不起作用。任何帮助都将不胜感激 var game = new Phaser.Game(1200, 750, Phaser.AUTO, '', { preload: preload, create: c

我正在使用phaser游戏引擎创建一个游戏。我创建了一个精灵表并下载了它。它是和256一起来的 × 带有我的框架的384.png文件和一个JSON文件,我假设其中包含关于如何分割框架的信息。我不知道如何将带有JSON文件的sprite表导入到我的preload()函数中。我尝试使用以下代码,但它不起作用。任何帮助都将不胜感激

var game = new Phaser.Game(1200, 750, Phaser.AUTO, '', { preload:   preload, create: create, update: update });
function preload(){
    game.load.image('background', 'assets2/background.png');
    game.load.json('robot', 'assets2/VillainSpriteSheet_json.json');
    game.load.spritesheet('robot', 'assets2/VillainSpriteSheet.png');
}

var villain; 

function create(){

var villainjson = game.cache.getJSON('robot');

//enable physics
game.physics.startSystem(Phaser.Physics.ARCADE);

//create background
var background = game.add.sprite(0, 0, 'background');

//villain
villain = game.add.sprite(50, 50, 'robot');

//enable phsyics 
game.physics.arcade.enable(villain);
villain.body.bounce.y = .2;
villain.body.gravity.y = 300; 
villain.body.collideWorldBounds = true;  


}

您不需要jQuery的getJSON()。你想要相位器

大概是

p = new Phaser.Game(...);
p.cache.getJSON('foo');
p.load.image(...);

我认为您混淆了两个框架,jQuery和Phaser。对于加载和显示不需要jQuery的精灵,只需Phaser即可

load.spritesheet
要求所有精灵具有固定的宽度和高度,因此网格布局中的所有精灵都具有固定的宽度和高度

您所拥有的听起来像一个,不同之处在于,在精灵中,每个精灵可以有不同的宽度和高度,每个精灵的所有这些宽度和高度都在附带的.JSON文件中描述

因此,我认为您正在寻找
load.atlasJSONHash
函数,类似这样的函数:

function preload(){
    //..
    game.load.atlasJSONHash('robot', 'assets2/VillainSpriteSheet.png', 'assets2/VillainSpriteSheet_json.json');

// and then load a sprite like so
// Note: 'myframename1' should be some framename from the .json file
var villain = game.add.sprite(50, 50, 'robot', 'myframename1'); 

顺便说一句,Phaser中的
load.json
可以用来加载一个.json文件,例如用于您自己的定制数据,如级别布局、对话框/多语言文本、高分数据、敌方模式等。

您读过@haxxxton吗?是的,我试着读过它。不幸的是,对我帮助不大,因为我以前从未使用过jQuery。我希望有人能用更简单的术语来解释这件事。你是在哪里创作的精神片?我是在动画装腔作势()上创作的。这是一个糟糕的模块,但我被要求在这个项目中使用它这里有一个链接到“谢谢”。我唯一的问题是它还必须加载.png文件。我不确定如何加载.png sprite表,使其与.json文件相对应,然后还需要sprite()方法来放置图像。如果这还不够清楚,请告诉我,当我不想在手机上这样做时,我会提供更多信息:)@DanielSmith我编辑了上面的问题,并将当前代码放入其中。这就是我在评论中难以理解的地方,但我发现有两件事遗漏了。您将需要一个for循环来循环加载的json。sprite方法的前两个参数应该是偏移量X和偏移量Y的值。