lua - 如何按顺序执行转换

时间:2017-03-16 19:08:33

标签: animation lua corona

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

假设“timeTable”的第一个和最后一个值是0,我尝试使用类似的东西:

class directedGraph
{
private:
    class vertex
    {
    public:
        string data;
        bool visited;
        vertex * predecessor;
        list<vertex*> adjList;

        vertex(string x)
        {
            data = x;
            visited = false;
        }
    };

    list<vertex*> vertexList;

虽然没有给出错误但它不起作用。 在此先感谢您的helpenter代码

3 个答案:

答案 0 :(得分:0)

可能会有效

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()  -- start moving to first point

答案 1 :(得分:0)

尝试

同一对象的转换链方法

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

        transition.to(object, params)
   end
end

答案 2 :(得分:0)

谢谢你们所有人! 我通过这样做完成了目标:

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()  -- start moving