Cocos2D中Action的高階使用技巧 一

2021-12-29 22:11:55 字數 921 閱讀 2008

大家對cocos2d中動作的使用大概都很清楚了,其實本身action的概念也不複雜.

但是在某些情況下,一般的動作不能滿足我們需求的時候,我們就必須使用更高階的action方法來解決問題.

比如,序列化(不是序列化哦,這是兩個完全不同的概念)不同action的執行…有些童鞋可能會說很簡單,直接用ccactionsequence不就結了,但是等等我還沒說完…這些序列執行的動作的目標是不同的.

再說的具體點,遊戲中有2個佇列,分別是我方佇列和敵方佇列,每個佇列有若干unit,每個unit可以做攻擊動作,同時每個unit也可以做被攻擊的動作.現在要求的邏輯是:

取出乙個unit發起攻擊動作 等到攻擊動作結束後,被攻擊的unit再完成被攻擊動作 依次序列化以上2個步驟,直到所有unit都處理完畢

看似簡單的要求,如果使用正常的action來完成就會發現無從下手.其實一般的解決辦法是有的,但是有限制,就是假定每個被攻擊動作的時間都一致.這樣可以通過特定延時的方法來解決,偽**如下:

array *actions

for each unit in list

attacker = unit

attacktarget = unit.target

callback *cb = ^

delay *delay = [delay 1];

[actions addobject:attacker.attackaction];

[actions addobject:cb];

[actions addobject:delay];

end for基本上類似如上的**,注意其中增加了乙個延時1秒鐘,因為我知道attackedaction大概要執行1秒鐘.

如果每次attackedaction執行的時間不確定的話,這招就沒有用了.

我們這時必須使用另外一種action:cctargetedaction

cocos2d中各種action方法的應用

action示例 1 移動動作 cc.moveby create time,posx,posy 在time時間內,相對當前位置基礎上移動x,y個單位。cc.moveto create time,posx,posy 在time時間內,移動到cc.p posx,posy 位置。2 縮放動作 cc.sca...

Cocos2D中Action的高階使用技巧 一

大家對cocos2d中動作的使用大概都很清楚了,其實本身action的概念也不複雜.但是在某些情況下,一般的動作不能滿足我們需求的時候,我們就必須使用更高階的action方法來解決問題.比如,序列化 不是序列化哦,這是兩個完全不同的概念 不同action的執行 有些童鞋可能會說很簡單,直接用ccac...

cocos2d實現語音 Cocos2d 聲音API

param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...