2016-08-09 4 views
0

アトラスの5つの画像のうち1つをランダムに追加しようとしていますが、これらの画像はすべて上に重ねて表示されます。基本的には、私がレベルを動かすたびにスプライトのうちの1つを5のいずれかにすることができますが、私が得るのは同時に5つです。Atlas Phaserからランダムなスプライトを表示する

///Declaration 
 

 
this.load.atlas('Monsters', 'images/monsters.png', 'images/monsters.json'); 
 

 

 
////Where I call sprite 
 

 
this.figuritaspega = this.game.add.sprite(0, 0, 'Monsters'); 
 
     this.figuritaspega.frame = this.rnd.integerInRange(0,4); 
 
     this.figuritaspega = this.game.add.group; 
 
     this.figuraarriba = this.add.sprite(1015, 140, this.figuritaspega); 
 
     this.figuraarriba.scale.set(0.9 , 0.9); 
 

 
////.json below 
 

 
{"frames": [ 
 

 
{ 
 
\t "filename": "amarillo.png", 
 
\t "frame": {"x":0,"y":0,"w":188,"h":200}, 
 
\t "rotated": false, 
 
\t "trimmed": false, 
 
\t "spriteSourceSize": {"x":0,"y":0,"w":188,"h":200}, 
 
\t "sourceSize": {"w":188,"h":200} 
 
}, 
 
{ 
 
\t "filename": "azul.png", 
 
\t "frame": {"x":188,"y":0,"w":240,"h":200}, 
 
\t "rotated": false, 
 
\t "trimmed": false, 
 
\t "spriteSourceSize": {"x":0,"y":0,"w":240,"h":200}, 
 
\t "sourceSize": {"w":240,"h":200} 
 
}, 
 
{ 
 
\t "filename": "naranja.png", 
 
\t "frame": {"x":428,"y":0,"w":162,"h":200}, 
 
\t "rotated": false, 
 
\t "trimmed": false, 
 
\t "spriteSourceSize": {"x":0,"y":0,"w":162,"h":200}, 
 
\t "sourceSize": {"w":162,"h":200} 
 
}, 
 
{ 
 
\t "filename": "rojo.png", 
 
\t "frame": {"x":590,"y":0,"w":190,"h":200}, 
 
\t "rotated": false, 
 
\t "trimmed": false, 
 
\t "spriteSourceSize": {"x":0,"y":0,"w":190,"h":200}, 
 
\t "sourceSize": {"w":190,"h":200} 
 
}, 
 
{ 
 
\t "filename": "rosa.png", 
 
\t "frame": {"x":780,"y":0,"w":231,"h":200}, 
 
\t "rotated": false, 
 
\t "trimmed": false, 
 
\t "spriteSourceSize": {"x":0,"y":0,"w":231,"h":200}, 
 
\t "sourceSize": {"w":231,"h":200} 
 
}], 
 
"meta": { 
 
\t "app": "http://www.codeandweb.com/texturepacker", 
 
\t "version": "1.0", 
 
\t "image": "monsters.png", 
 
\t "format": "RGBA8888", 
 
\t "size": {"w":1011,"h":200}, 
 
\t "scale": "1", 
 
\t "smartupdate": "$TexturePacker:SmartUpdate:41785e106df91b6daf42364753f15c41:5fca3c08999ac8d93eabfac98fafaf65:8fc4d3ec51ba7bc700054b5f64cf62b1$" 
 
} 
 
}

答えて

1

私は本当にあなたがここでやろうとしているのか分からないが、私はプログラミングのミスのカップルがあります知っています。

まずあなたがPhaser.Sprite追加とVAR良いですfiguritaspegaに割り当てたが、その後、あなたはPhaser.Groupを作成し、同じVAR figuritaspegaにもそれを割り当てますか?私はグループのための別の変数を持つことが良いと思います。

第2に、add.groupは関数呼び出しなので、関数に変数を代入するのではなく、関数呼び出しであることを示すために()を追加する必要があります。

そして、あなたはfiguraarribaにスプライトを追加したときに最後に、パラメータは1015、140、this.figuritaspegaですが、期待されるパラメータはx,y,key,framesee here)ですので、基本的にあなたがスプライト/グループthis.figuritaspegaを渡していることがspritesheetだかのように?それは動作しません。

私が言ったように、あなたがここで何をしようとしているのか、グループにスプライトを1つだけ追加する理由は何か、しかし、私は多分このような何かがうまくいくと思います:ヒントについて

// create a sprite, random frame 0..4 
this.figuritaspega = this.game.add.sprite(0, 0, 'Monsters'); 
this.figuritaspega.frame = this.rnd.integerInRange(0,4); 

// create a group 
this.mysprites = this.game.add.group(); // <- function call 
this.mysprites.add(this.figuritaspega); 

// scale entire group and reposition group 
this.mysprites.scale.set(0.9 , 0.9); 

// notice that the sprite position is relative to the group position 
this.mysprites.x = 10; 
this.mysprites.y = 20; 
+0

おかげで多くの:)、この(this.rnd.integerInRange(0,4); )を助け、私のエラーを修正トリックをしました。 – Rafahc

関連する問題