大家對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...