1. 程式人生 > >quick-cocos2dx-lua之精靈移動後的回撥函式

quick-cocos2dx-lua之精靈移動後的回撥函式

請您先把目光集中在下面這個一行程式碼的移動方法上:

 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


雖然程式碼多於第一種方法,但是該回調方法可以逆天的一步一步執行接下來的每一件事情,沒有任何衝突。