在我正在制作的游戏中,我主要使用 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/)给出了我正在寻找的答案。简而言之,这是可能的。