如何在不终止函数的情况下返回值?

在这里它返回0.2,因为它会停止函数而不等待计时器的迭代。

function Ani.Speed(maxSpeed, phase)
    if(phase == accelerate) then
        function speedUp()
            if(maxSpeed ~= 0) then
                maxSpeed = 0
            end
            returnedSpeed = maxSpeed + 0.2
            return(returnedSpeed)
        end
        timer.performWithDelay(1000, speedUp, 10)
    end

end

如何在每次迭代时返回maxSpeed?

期望结果:

print(maxSpeed) -- 0/0.2/0.4/0.6/(...)/2,其中"/"是间隔秒数
点赞
用户7262678
用户7262678

timer.performWithDelay之前声明本地数组变量,并在speedUp函数中将所有maxSpeed添加到该数组中。在timer.performWithDelay之后,返回该数组。

根据要求,以下是建议的代码:

if(phase == accelerate) then
    returnedSpeed = {}
    i = 1 #(array index)
    function speedUp()
        if(maxSpeed ~= 0) then
            maxSpeed = 0
        end
        returnedSpeed[i] = maxSpeed + 0.2
        i = i + 1
    end
    timer.performWithDelay(1000, speedUp, 10)
    return returnedSpeed
end
2017-03-11 13:49:14