您好,登錄后才能下訂單哦!
1 在一個游戲中有了人物、白云等精靈,但是游戲中精靈靜止不動肯定是不行的,要讓它們執行一些動作,使精靈有豐富的動畫效果,這樣就會使用到CCAction類。CCAction主要用于人物角色等發生動作時使用,如緊身肉搏、遠程射擊和貼近對話等
2 在cocos2d-x中,CCAction的類結構圖如下
3 從上面的類結構圖可以看出,動作的基類是CCAction,通過繼承它可以實現很多不同的動作,主要分為三大類:CCFiniteTimeAction(有限次動作執行類)、CCSpeed(節點執行速度類)、CCFollow(節點跟隨另一個節點移動)
4 在實際中,主要用到的是CCFiniteTimeAction類,所以下面詳細介紹這個類。
5 CCFiniteTimeAction分為CCActionInstant(瞬時動作)和CCActionInterval(延遲動作)。其中CCActionInstant動作沒有執行過程,動作瞬時完成,而CCActionInterval動作執行需要一定的時間(或者一個過程)
6 在實際中,為了制作出炫麗的動畫效果,使用得多的是CCActionInterval延時動作,下面開始介紹延遲動作
7 在上面的類結構圖中,CCActionInterval的子類很多,簡單介紹其中常用的,也可以通過cocos2d-x中自帶的TestCpp例子來學習
(1) CCMoveTo / CCMoveBy 移動兩者的主要差別在于CCMoveTo是移動到指定坐標,CCMoveBy是相對坐標。例如CCMoveTo(2.0f, ccp(50, 50))是在2s時間內移動到點x = 50、y = 50處,而CCMoveBy(2.0f, ccp(50, 50))表示2s時間內向x方向移動50個單位,向y方向移動50個單位
(2) CCScaleTo / CCScaleBy 縮放
(3) CCRotateTo / CCRotateBy 旋轉
(4) CCSkewTo / CCSkewBy 扭曲
(5) CCJumpTo / CCJumpBy 跳躍
(6) CCBezierTo / CCBezierBy 貝塞爾曲線
(7) CCBink 閃爍
(8) CCFadeIn / CCFadeOut 淡入淡出
(9) CCTintTo / CCTintBy 染色
8 動作的一個簡單用法
CCSprite *heroSprite = CCSprite::create(“hero.png”);
CCMoveTo *move = CCMoveTo::create(2.0f, ccp(50, 50));
heroSprite->runAction(move);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。