如何使用transition.to随机移动对象?

时间:2013-07-16 16:36:12

标签: lua logic corona

我正在尝试将一个对象随机移动到不同的位置,所以我推出了以下内容:transition.to随机生成x,y以及时间,并在完成时运行另一个函数来检查对象仍在那里并将其发送到不同的位置。

但是我收到了一个错误:

Runtime error
main.lua:352: stack overflow
stack traceback:
  main.lua:352: in function
 'toAnotherPlace'

看起来电晕并没有真正等待转换完成,所以它继续无限循环

function toAnotherPlace(object) 
    if object ~= nil then
        transition.to( object,
            {
                time=math.random(1500,6000),
                alpha=1,
                x=(math.random(10, 310)),
                y=(math.random(10, 400)),
                onComplete=toAnotherPlace(object)
            })
    end
end

transition.to( bossess[boss],
    {
        time=math.random(1500,6000),
        alpha=1,
        x=(math.random(10, 310)),
        y=(math.random(10, 400)),
        onComplete=toAnotherPlace(bossess[boss])
    })

1 个答案:

答案 0 :(得分:1)

你可以尝试这个,我添加了一个onComplete = function() ... end,然后在其中调用toAnotherPlace(object)函数。

如果您直接调用onComplete

上的函数,我认为这是一个错误
function toAnotherPlace(object)
    print(object.width)
    if object ~= nil then
        transition.to( object,
        {
            time = math.random(1500,6000),
            alpha = 1,
            x = math.random(10, 310),
            y = math.random(10, 400),
            onComplete = function()
                toAnotherPlace(object)
            end
        })
    end
end

transition.to(bossess[boss],
{
    time = math.random(1500,6000),
    alpha = 1,
    x = math.random(10, 310),
    y = math.random(10, 400),
    onComplete = function()
        toAnotherPlace(bossess[boss])
    end
})

我试过这个并且工作正常,没有错误。

如果仍然出现错误,请检查bossess[boss]是否有对象的引用