我正在制作益智游戏。
首先,我需要将图像切片为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();
}
}
}
当我先加载它时,它有效。
我移动到其他场景并回到这个场景,Sprite没有加载。
var sp=new cc.Sprite(imagepuzzle.image);
sp.initWithSpriteFrame(frame);
我猜这部分有问题。
另外,我想添加孩子&#39; sp&#39; SpriteBatchNode中的sprite。
像
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
我该如何解决这个问题?