生成sprite動畫物件的方法

2021-08-26 17:05:57 字數 1330 閱讀 4723

以下只是乙個最原始的方法,從執行效率的角度出發,如果乙個場景裡面同時包含了100個使用相同動畫的sprit,

每個 動畫sprite都由下面的方法生成的話,有些**:

1.緩衝sprite幀和紋理;

2.建立乙個精靈節點;

3.收集幀列表;

這些個只需要執行一次的操作便被重複執行了 100次,浪費cpu,浪費電池電量。。

所以說,還是存在相當大的優化空間。。。

- (ccsprite*) genanimsprite:(cgpoint)position

animname:(nsstring*)animname

startindex:(int)startindex

endindex:(int)endindex

repeatforever:(bool)repeatforever

delay:(float)delay

// 4.建立動畫物件

ccanimation *animation = [ccanimation

animationwithframes:animframes delay:delay];

idaction = [

ccanimate

actionwithanimation:animation restoreoriginalframe:

no];

id animsequence = nil;

if(repeatforever == yes) else

// 5.建立 sprite 並且讓它 run 動畫 action~

nsstring *str = [nsstring

stringwithformat:@"%@%d.png", animname, startindex];

ccsprite *animsprite = [ccsprite

spritewithspriteframename:str];

cgsize size = [self

getanimspritesize:animname start:startindex];

if(!_isipad) else

[_single.gamelayer

addchild:animsprite];

[animsprite setposition:position];

[animsprite runaction:animsequence];

return animsprite;

}/** 待氣球**動作執行完畢之後,將 animsprite 從 gamelayer中移除~ */

- (void) removesprite:(id)sender

Flash生成HTML5動畫方法

方法一 利用 swiffy 將flash轉換成html5動畫。在flash原始檔編輯完成後,點選 命令 輸出為html5 swiffy 項,即可將當前fla原始檔轉換成html5動畫。同時從 output 結果輸出 視窗中就可以檢視到當前輸出的html5動畫儲存位置,以及其它相關資訊。方法二 利用 ...

jQuery的動畫方法

animate引數 引數一 要改變的樣式屬性值,寫成字典的形式 引數二 動畫持續的時間,單位為毫秒,一般不寫單位 引數三 動畫曲線,預設為 swing 緩衝運動,還可以設定為 linear 勻速運動 引數四 動畫 函式,動畫完成後執行的匿名函式 div1 animate 1000,swing fun...

生成Content Part需要生成的物件列表

a content part itself 這是乙個繼承contentpart 或 contentpart t表示對應的record型別 的普通類。如果不需要儲存在資料庫,則使用contentpart,如果希望把資料儲存在資料庫中,則使用contentpart a content part reco...