quick-cocos2dx-lua之精靈移動後的回撥函式
阿新 • • 發佈:2018-12-27
請您先把目光集中在下面這個一行程式碼的移動方法上:
transition.moveTo(node, {x = x, y = y, time = 1})
我之前一直在用上面這種方法,剛剛開始還覺得用的挺好,能將遊戲中需要的精靈移動到指定的位置。但是後來接觸到分佈執行事件後,該方法根本不能達到自己想要的效果,同時代碼量增加了很多,顯然作為一個程式設計師來說,這是很難過的事情,後來從大牛那裡知道了如下回調方法,頓時覺得寫起來叼了很多(如下):
-------------------------------- -- @param node 要移動的物件 -- @param x 橫向座標 -- @param y 縱向座標 -- end -- local function fly_func(node, x, y, time) if node then local move = {} move[#move + 1] = cc.MoveTo:create(time, cc.p(x, y)) move[#move + 1] = cc.CallFunc:create(function(event) --動作執行完到這裡 --這裡你可以進行任何操作,比如一個骰子擲完後接下來要乾的事情可以在這裡寫。 end) local sequence = transition.sequence(move) node:runAction(sequence) end end
雖然程式碼多於第一種方法,但是該回調方法可以逆天的一步一步執行接下來的每一件事情,沒有任何衝突。