cocos2dx 用序列幀創建幀動畫

遊戲中常常用到一些動畫,若是比較簡單的動畫則可通過Flash導出動畫的所有序列幀。

項目中則可用這些序列幀創建出動畫。

js代碼示例:

cc.spriteFrameCache.addSpriteFrames(frame.plist);   //plist包含所有幀序列
var frameAni = new cc.Sprite();
frameAni.setPosition(cc.p(frameAni.width / 2, frameAni.height  / 2));
frameAni.initWithSpriteFrameName("frame_01.png");   //設置初始狀態

//添加幀序列
var animation = new cc.Animation();
     for (var i = 1; i <= 4; i++) {
        var frameName = "frame_0" + i + ".png";
        var spriteFrame = cc.spriteFrameCache.getSpriteFrame(frameName);
        animation.addSpriteFrame(spriteFrame);
    }

animation.setDelayPerUnit(0.05);           //設置兩個幀播放時間(單位:秒)
animation.setRestoreOriginalFrame(true);    //動畫執行後還原初始狀態

var action = cc.animate(animation);
frameAni.runAction(cc.repeatForever(action));

可以不難看出,就是先用Animation裝載所有幀序列,然後通過sprite去執行這個動作。而動作的實質就是
每隔一個時間間隔就去換這個幀,sprite就會渲染出相對應的幀。

需要注意的是這裏需要預加載plist文件(代碼第一行),如果你是散的碎圖的話,加載所有對應的png即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章