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();
        }
    }
 }

最初にロードしたところ、うまくいきました。

そして、別のシーンに移動してこのシーンに戻ると、スプライトがロードされていませんでした。

     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