【发布时间】:2012-10-17 11:48:53
【问题描述】:
在我正在制作的游戏中,我主要使用 C# 开发它,但我想使用 Lua 协程来处理一些游戏逻辑,因为它们可以很好地表示跨多个帧的动作。不过,我以前从未真正使用过 Lua,所以我不确定这是否可行。 理想情况下,我希望 C# 游戏更新功能能够将一个或多个 Lua 协程添加到队列中,然后在每一帧中迭代队列,执行每个协程直到它产生或完成。 我只想知道这是否可行,如果可以,如何实现,因为它似乎不符合 Lua 使用的“lua_dofile”范式。
这里有一些 C# 伪代码来说明我的意思:
GameUpdate()
{
// Update game logic
// (which may add one or more Lua coroutines to the queue)
// Update input, physics, sound, etc
// In Lua:
// For each coroutine in queue,
// execute it until it reaches a yield,
// or it finishes, whichever comes first
}
GameRender()
{
// Render a frame
}
更新:这篇文章 (http://www.gamedev.net/topic/585128-luainterface-and-coroutines/) 给出了我正在寻找的答案。总之,是可以的。
【问题讨论】:
-
Lua 没有“lua_dofile 范例”。