请您先把目光集中在下面这个一行代码的移动方法上:
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
虽然代码多于第一种方法,但是该回调方法可以逆天的一步一步执行接下来的每一件事情,没有任何冲突。