2017-02-18 4 views
1

私はフェイザーゲームエンジンを使用してゲームを作成しています。スプライトシートを作成してダウンロードしました。 256×384の.pngファイルにはフレームがあり、JSONファイルにはフレームの分割方法に関する情報が含まれています。 JSONファイルを含むスプライトシートをpreload()関数にインポートする方法がわかりません。次のコードを使ってみましたが、動作しません。どんな助けでも大歓迎です。JSONファイルを含むスプライトシートをフェイザーゲームにインポートするにはどうすればよいですか?

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; 


} 
+0

[Documentation](http://api.jquery.com/jquery.getjson/) – haxxxton

+0

@haxxxtonはい私はそれを読むことを試みた。残念ながら私はjQueryを使ったことがないので、あまり役に立ちません。私は誰かがそれをより単純な言葉で説明できることを望んでいた –

+0

どこでスプライトシートを作成しましたか? –

答えて

1

ようなものになるだろう。スプライトの読み込みと表示には、jQueryは必要ありませんが、Phaserだけが行います。

load.spritesheetは、グリッドレイアウト内のすべてのスプライトを持つように、すべてのスプライトは、一定の幅と高さを有するspritesheetを期待します。

差があること、spriteatlasのように聞こえる何を持っているspriteatlasに各スプライトは、異なる幅と高さを持つことができ、およびスプライトごとにすべてのこれらの幅と高さは、添付.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'); 

そして、ところでだけ明確にするが、フェイザーでload.jsonを持つ例えば、ちょうど.jsonファイルをロードするために使用することができますレベルレイアウト、多言語テキスト、ハイスコアデータ、敵パターンなどの独自のカスタマイズデータ用

0

jQueryのgetJSON()は不要です。あなたはフェイザーを一つにしたい。

それは、私はあなたが2つのフレームワーク、jQueryとフェイザーを混乱していると思う

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

[docsへのリンク](http://phaser.io/examples/v2/loader/load-json-file) – haxxxton

+0

ありがとう。私の唯一の問題は、.pngファイルもロードする必要があることです。 .jsファイルに対応するように.pngスプライトシートをロードする方法がわかりません –

+0

次に、イメージを配置するにはスプライト()メソッドも必要です。それが十分に明確でない場合は私に教えてください。私が電話からこれをやろうとしていないときには、より多くを提供します:) https://github.com/photonstorm/phaser-examples/blob/master/examples/ loader/load%20image.js –

関連する問題