パズルゲームを作っています。
まず、画像を 4x4 フレームにスライスする必要があります。
これが私のコードです。
ctor:function () {
this._super();
cc.loader.load(game_common_resources);
cc.loader.load(ipuzzle_resources);
this._commonLayer=new GameCommonLayer();
this.addChild(this._commonLayer,10);
var tex=new cc.Sprite(imagepuzzle.image);
var texture=new cc.Texture2D();
texture.initWithElement(tex.getTexture());
for (var i = 0; i < 4; i++)
{
for (var j = 0; j < 4; j++)
{
var frame=new cc.SpriteFrame();
frame.initWithTexture(texture,cc.rect(170*i,170*j,170,170));
var sp=new cc.Sprite(imagepuzzle.image);
sp.initWithSpriteFrame(frame);
sp.anchorX=0;
sp.anchorY=0;
sp.x=50+i*175;
sp.y=915-j*175;
sp.setTag(i+j*4);
this.addChild(sp);
sp.release();
}
}
}
最初にロードしたところ、うまくいきました。
そして、別のシーンに移動してこのシーンに戻ると、スプライトがロードされていませんでした。
var sp=new cc.Sprite(imagepuzzle.image);
sp.initWithSpriteFrame(frame);
この部分に問題があると思われます。
また、SpriteBatchNode に子 'sp' スプライトを追加したいと考えています。
お気に入り
var aaa=new cc.SpriteBatchNode(imagepuzzle.image);
this.addChild(aaa,2);
var frame=new cc.SpriteFrame();
frame.initWithTexture(texture,cc.rect(170*i,170*j,170,170));
var sp=new cc.Sprite(imagepuzzle.image);
sp.initWithSpriteFrame(frame);
aaa.addChild(sp);
しかし、このエラーが発生しました。
cc.SpriteBatchNode.addChild(): cc.Sprite is not using the same texture
どうすればこれを解決できますか?