1

我正在制作益智游戏。

首先,我需要将图像切片为 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);

估计这部分有问题。

另外,我想在 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

我该如何解决这个问题?

4

0 回答 0