Cocos2d x v3 x官方文件 序列幀動畫

2021-08-13 04:54:35 字數 2331 閱讀 1555

簡介

我們使用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),獲得事先存入的動畫

建議:在記憶體警告時我們應該加入如下的清理快取操作:

void

releasecaches() 

值得注意的是清理的順序,我們推薦先清理動畫快取,然後清理

精靈幀快取

,最後是

紋理快取

。按照引用層級由高到低,以保證釋放引用有效。

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...