簡介
我們使用animation類描述乙個動畫,而精靈顯示動畫的動作則是乙個animate物件。動畫動作animate是精靈顯示動畫的動作,它由乙個動畫物件建立,並由精靈執行。
建立方法
1. 手動新增序列幀到animation類
2. 使用檔案初始化animation類
手動新增
auto animation = animation::create();for(
inti=1;i<15;i++)
; sprintf(szname, "images/grossini_dance_%02d.png"
, i);
animation->addspriteframewithfile(szname);
} // should last 2.8 seconds. and there are 14 frames.
animation->setdelayperunit(2.8f / 14.0f);
animation->setrestoreoriginalframe(true
); auto action = animate::create(animation);
_grossini->runaction(sequence::create(action, action->reverse(), null));
在建立animation例項時會用到以下幾個介面:
1.「addspriteframe」,新增精靈幀到animation例項
2. 「setdelayunits」,設定每一幀持續時間,以秒為單位
4. 「clone」,轉殖乙個該animation例項
檔案新增
首先我們來了解下需要用到的animationcache類。animationcache可以載入xml/plist檔案,plist檔案裡儲存了組成動畫的相關資訊,通過該類獲取到plist檔案裡的動畫。
在使用animationcache類時會用到以下幾個介面:
1.「addanimationswithfile」,新增動畫檔案到快取,plist檔案
2.「getanimation」,從快取中獲取動畫物件
3.「getinstance」,獲取動畫快取例項物件
auto cache = animationcache::getinstance();cache->addanimationswithfile("animations/animations-2.plist"
); auto animation2 = cache->getanimation("dance_1"
); auto action2 = animate::create(animation2);
_tamara->runaction(sequence::create(action2, action2->reverse(), null));
注意:3.0開始,cocos2d-x使用getinstance來獲取單例例項。
動畫快取(animationcache)
通常情況下,對於乙個精靈動畫,每次建立時都需要載入精靈幀,按順序新增到陣列,再建立對應動作類,這是乙個非常煩瑣的計算過程。對於使用頻率高的動畫,比如走路動畫,將其加入快取可以有效降低每次建立的巨大消耗。由於這個類的目的和快取內容都非常簡單直接,所以其介面也是最簡單了的,如下所示:
1. static animationcache* getinstance(),全域性共享的單例
2. void addanimation(animation *animation, const std::string& name),新增乙個動畫到快取
3. void addanimationswithfile(const std::string& plist),新增動畫檔案到快取
4. void removeanimation(const std::string& name),移除乙個指定的動畫
5. animation* getanimation(const std::string& name),獲得事先存入的動畫
建議:在記憶體警告時我們應該加入如下的清理快取操作:
voidreleasecaches()
值得注意的是清理的順序,我們推薦先清理動畫快取,然後清理
精靈幀快取
,最後是
紋理快取
。按照引用層級由高到低,以保證釋放引用有效。
Cocos2d x v3 x官方文件 序列幀動畫
簡介 我們使用animation類描述乙個動畫,而精靈顯示動畫的動作則是乙個animate物件。動畫動作animate是精靈顯示動畫的動作,它由乙個動畫物件建立,並由精靈執行。建立方法 1.手動新增序列幀到animation類 2.使用檔案初始化animation類 手動新增 auto animat...
Cocos2d x v3 x 序列幀動畫
簡介 我們使用animation類描述乙個動畫,而精靈顯示動畫的動作則是乙個animate物件。動畫動作animate是精靈顯示動畫的動作,它由乙個動畫物件建立,並由精靈執行。建立方法 手動新增序列幀到animation類 使用檔案初始化animation類 手動新增 複製 auto animati...
Cocos2d x v3 x 序列幀動畫
簡介cocos2d x中,動畫的具體內容是依靠精靈顯示出來的,為了顯示動態,我們需要不停切換精靈顯示的內容,通過把靜態的精靈變為動畫 器從而實現動畫效果。動畫由幀組成,每一幀都是乙個紋理,我們可以使用乙個紋理序列來建立動畫。我們使用animation類描述乙個動畫,而精靈顯示動畫的動作則是乙個ani...