在Lua,没有简单的方法可以在理想的时间内睡觉。为了解决这个问题,我创建了一个为我做这个的功能:
local clock = os.clock
function sleep(n) -- seconds
local t0 = clock()
while clock() - t0 <= n do
end
end
然后我将其应用于某些代码:
player:applyLinearImpulse(0, -14, player.x, player.y)
sleep(1)
目标是将线性冲动施加到地面然后冻结游戏。然而,这只是在施加冲动之前冻结游戏。一般来说,如何在睡觉之前确保执行上一个命令?
答案 0 :(得分:0)
在Corona中,对象的动态操作(如应用冲动,移动,启动计时器等)实际上只是在代码返回后“制定”。您必须使用timer.performWithDelay(1, function() sleep(1) end)
。
一旦运行定时器回调,GUI将仅在从该回调(sleep
)返回时更新,因此您的GUI将在1秒内冻结。这似乎是你正在寻找的效果,虽然通常你不想冻结GUI。