1

我试图将一个对象随机移动到不同的位置,所以我得出以下结论: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])
    })
4

1 回答 1

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]是否有对您的对象的引用

于 2013-07-16T17:17:45.717 回答