【发布时间】:2012-07-31 19:22:39
【问题描述】:
背景
我目前正在创建一个使用LuaInterface 的XNA 应用程序,以便我可以使用Lua scripts 控制该应用程序。
我想要什么
我注意到,在我的开发过程中,很多事情可能都是“时间”。这样的事情可能包括显示信息,然后在 x 秒后将其删除,如果需要 x 秒,则以失败结束游戏,甚至在 中使用每 x 秒将相机缓和一定距离。我想在 Lua 中实现 wait 函数,而不是我的应用程序,但在这一点上,我可以输入(因为我似乎无法让它工作)。
到目前为止我已经尝试过什么
inv.lua
_G.Wait=(function(t)
local dest=Time.ElapsedMilliseconds+t*1000
while Time.ElapsedMilliseconds<dest do
gel:UIUpdate()
end
return true
end)
--Aliases
_G.wait=Wait
gELua.vb
Public Sub UIUpdate()
Application.DoEvents()
Game.Tick()
End Sub
(Game 是我的 XNA 游戏对象)
那么为什么我的想法不起作用?
当前的问题是,即使我每次都调用 Game.Tick() 以保持一切正常,但我的应用程序的 XNA 部分停止接收输入。
所以,我的问题是,有没有更好的方法来做到这一点?在遇到用户输入问题之前,我认为它运行良好。你们有没有人实施过这样的东西,效果很好?
【问题讨论】:
-
整个脚本会“等待”指定的时间吗?例如,“toast.lua”是一个单独的脚本,比如“someentity.lua”?
-
它确实等待正确,即使来自其他脚本也是如此,因为我将该函数添加到全局表中。
标签: .net xna lua wait luainterface