lua - 如何按顺序执行变换

我正在尝试使用变换沿着复杂曲线路径移动对象,并以恒定速度进行变换。 我有两个表格来保存点的坐标,另一个表格保存在相同速度下行驶每个线性段的相应时间间隔(尽管它们具有不同的长度)。

假设“timeTable”的第一个和最后一个值为0,我尝试使用以下代码:

local i = 1
local function Move()
        transition.to(player, {time=timeTable[i+1], x=TableX[i+1], y=TableY[i+1]})
        i=i+1
end
timer.performWithDelay( timeTable[i], Move, 0 )

尽管未给出错误信息,但它无效。 感谢您的帮助。

点赞
用户1847592
用户1847592

也许这样会起作用

local timeTable = {1,     3,   4,   1}
local TableX    = {100, 400, 400, 500}
local TableY    = {100, 100, 500, 500}

local i = 0

local function onCompleteMove()
   i = i + 1
   if timeTable[i] then
      transition.to(player, {
         time=timeTable[i],
         x=TableX[i],
         y=TableY[i],
         onComplete=onCompleteMove
      })
   end
end

onCompleteMove()  -- 开始移动到第一个点
2017-03-16 21:25:40
用户7026995
用户7026995

尝试

用于相同对象的过渡链方法

local function chainOfTransitions(object, params, ...)
   if params then
        function params.onComplete()
            chainOfTransitions(object, unpack(arg))
        end

        transition.to(object, params)
   end
end
2017-03-17 12:49:15
用户7722983
用户7722983

感谢大家!我通过以下方式实现了目标:

local segmentTransition
local delta = 1
local function onCompleteMove()
    i = i + delta
    if timeTable[i] then
        segmentTransition = transition.to(player2, {
            time=timeTable[i],
            x=tableX[i+delta],
            y=tableY[i+delta],
            onComplete=onCompleteMove
        })
    end
end

onCompleteMove()  -- 开始移动
2017-04-06 20:26:55