cocos2dx 的 Repeat 函數的一種等效用法(lua 接口)

引子

在使用多個 cc.RotateBy 來創建連續的旋轉動畫時,發現 Repeat 函數調用後,傳入的參數是 3,卻跑了 4 次。傳 6 跑 7。傳 9 跑 9。函數表現得比較奇怪,一時源碼中又看不出 bug 所在。於是想到了利用 Sequence 做一個等效實現。

實現辦法

local r = cc.RotateBy:create(0.1, 60)
local xs = {
  r:clone(),
  r:clone(),
  r:clone(),
  r:clone(),
  r:clone(),
  r:clone(),
}
local s = cc.Sequence:create(table.unpack(xs))
self.cursor:runAction(s)

主要利用 unpack 來傳參了。另外,數組生成的地方可考慮用 for 循環。

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章