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