日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【玩转cocos2d-x之九】动作类CCAction

發布時間:2024/4/11 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【玩转cocos2d-x之九】动作类CCAction 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原創作品,轉載請標明:http://blog.csdn.net/jackystudio/article/details/12770909


精靈也出來了,但是不會動的精靈是木有用的。。。CCAction就是負責來解決精靈運動的問題。


1.概況


CCAction直接從CCObject繼承而來,注意它代表的是一個動作,是動詞。精靈執行了這個動作,而不是名詞。CCAction本身并沒有什么功能,主要是定義了一些通用函數和虛函數讓子類實現多態性。


2.接口

[cpp]?view plaincopy
  • //返回一個描述??
  • const?char*?description();??
  • ??
  • //返回動作是否結束??
  • virtual?bool?isDone(void);??
  • ??
  • //在動作開始前調用,需要設置目標精靈??
  • virtual?void?startWithTarget(CCNode?*pTarget);??
  • ??
  • //每幀調用,time在0~1之間,0代表動作剛開始,0.5代表動作執行一半,1代表動作結束??
  • virtual?void?update(float?time);??
  • ??
  • //返回/設置目標節點??
  • CCNode*?getTarget(void);??
  • void?setTarget(CCNode?*pTarget);??
  • ??
  • //獲取/設置上一個節點??
  • CCNode*?getOriginalTarget(void);??
  • void?setOriginalTarget(CCNode?*pOriginalTarget);??
  • ??
  • //獲取/設置標簽??
  • int?getTag(void);??
  • void?setTag(int?nTag);??
  • ??
  • //創建動作靜態方法??
  • static?CCAction*?create();??

  • 3.CCFollow

    CCFollow跟隨動作,繼承于CCAction,可以實現節點跟隨另一個節點動作。它內部封裝了一個boundary,也就是跟隨范圍,初始為CCRectZero。

    [cpp]?view plaincopy
  • //創建一個CCFollow對象,create實際上調用了initWithTarget??
  • static?CCFollow*?create(CCNode?*pFollowedNode,?const?CCRect&?rect?=?CCRectZero);??
  • bool?initWithTarget(CCNode?*pFollowedNode,?const?CCRect&?rect?=?CCRectZero);??

  • 4.CCSpeed

    CCSpeed可調整速度動作類,內部封裝了一個速度值,CCSpeed使用很簡單,就是傳入一個動作和速度,在內部重新copy一個新的動作返回。

    [cpp]?view plaincopy
  • //創建一個可變速度動作類,傳入速度值??
  • static?CCSpeed*?create(CCActionInterval*?pAction,?float?fSpeed);??

  • 5.CCFiniteTimeAction

    CCFiniteTimeAction有限次動作執行類,繼承于CCAction,它有兩個子類CCActionInstant和CCActionInterval,前者代表瞬時動作,也就是這個動作基本不需要時間馬上就能完成,而后者代表延時,這個動作需要一段時間來運行。它的子類說明看上圖吧。

    相比CCAction,它多了一個m_fDuration屬性,表示持續時間。

    [cpp]?view plaincopy
  • //獲取/設置動作持續時間??
  • float?getDuration(void);??
  • void?setDuration(float?duration);??
  • ??
  • //反轉動作,類似于倒帶效果,返回一個新的動作??
  • virtual?CCFiniteTimeAction*?reverse(void);??

  • 好了,游戲的基本元素就寫到這里,寫API文檔很蛋疼的說。。。

    總結

    以上是生活随笔為你收集整理的【玩转cocos2d-x之九】动作类CCAction的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。