【Cocos2d-html5遊戲引擎學習筆記(9)】Action系統動作

在遊戲製作的過程中,動作也是很重要的一個部分,比如角色的跳躍,移動等等


cocos2d-html5提供了很多動作,調用起來十分方便,喜歡用cocos2d這套引擎就是覺得在場景跳轉和動作方面省了很多事,而且效果也很好。

比較常用的有這麼幾個:

移動到 cc.MoveTo.create

移動 cc.MoveBy.create

縮放到  cc.ScaleTo.create

縮放 cc.ScaleBy.create

旋轉到 cc.RotateTo.create

旋轉 cc.RotateBy.create

跳躍到 cc.JumpTo.create

跳躍 cc.JumpBy.create

漸變出現 cc.FadeIn.create

漸變消失 cc.FadeOut.create


說明一下To和By的區別吧,To就是參數中要達到的那個位置或者效果,在設定的時間參數內完成,而By是每一步相對進行的,舉個例子說吧

cc.MoveTo是“移動到這裏",而cc.MoveBy則是“相對於之前點再移動”,通俗一點就是說這裏需要兩個座標pos1(x1,y1),pos2(x2,y2),如果是CCMoveTo的話,就是將對象由pos1移動到pos2,而cc.MoveBy則是說對象的終座標是在pos1的基礎上再加上(矢量相加)pos2,終座標pos3=pos1+pos2。

同時需要注意的是,帶By方法的都是支持reverse()方法,可以獲取其反向的動作。

var actionTo = cc.MoveTo.create(2, cc.p(300, 300));
sp.runAction(actionTo);
當然我比較懶,也覺得一個動作要定一個變量過於麻煩,所以可以整合到一起寫,比如這樣
sp.runAction(cc.MoveTo.create(2, cc.p(300, 300)));

動作也是可以支持同時執行的
cc.Spawn.create

var action = cc.Spawn.create(
            cc.JumpBy.create(2, cc.p(300, 0), 50, 4),
            cc.RotateBy.create(2, 720));

sp.runAction(action);

或者依次執行
cc.Sequence.create
var action = cc.Sequence.create(
            cc.RotateBy.create(3, 360),
            cc.FadeOut.create(2)) 
        );

或者重複執行動作
cc.Repeat.create
也可以永久重複執行
cc.RepeatForever.create
var act1 = cc.RotateTo.create(0.5, 90);
        var act2 = cc.RotateTo.create(0.5, 0);
        var seq = cc.Sequence.create(act1, act2);
        var rep1 = cc.RepeatForever.create(seq);
        var rep2 = cc.Repeat.create((seq.clone()), 4);
動作也是可以支持複製的,clone()方法

動作中可以創建一個回調動作,比如移動動作完了之後我需要知道然後做別的事情
cc.CallFunc.create
var action = cc.Sequence.create(
            cc.MoveBy.create(1, cc.p(100, 0)),
            cc.CallFunc.create(this.onCallback1, this));
sp.runAction(action);
onCallback1:function () {
       //doThings();
    },

也可以讓動作延遲一段時間進行
cc.DelayTime.create
var action = cc.Sequence.create(
            cc.DelayTime.create(1),
            cc.CallFunc.create(this.repeatForever));

sp.runAction(action);

基本的動作差不多這些就足夠了,當然還有一些複雜的,可以翻翻看test例子中的代碼學習,動作中還有一個動作曲線和動作管理,後面的文章再介紹吧

寫到這裏我纔想起來,還沒有介紹精靈的自定義動畫。呵呵,下一章簡單介紹下吧~

發佈了57 篇原創文章 · 獲贊 112 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章