如何在cocos2d-js中切片图像?

时间:2014-12-12 06:16:30

标签: cocos2d-js

我正在制作益智游戏。

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

我该如何解决这个问题?

0 个答案:

没有答案