我正在尝试将基于 lua 的脚本系统嵌入到我的游戏引擎中。我希望脚本能够同时具有阻塞和非阻塞命令,例如:
character.walkTo(24, 359); // Blocks until character arrives
c = 35; // Non blocking, execution goes on to the next statement
由于“walkTo”需要在 1 帧以上的执行中处于“活动状态”,因此我希望能够从 Java 主机一次运行 1 条语句,而不是整个函数。这是因为拥有真正的多线程是多余的,这不是必需的。
如果我可以只执行 1 条语句,并保持执行状态“暂停”直到下一条语句执行,我将能够通过检查命令是否在主机中完成来实现阻塞命令,例如“walkTo”,如果是,则执行继续下一条语句,否则,等到下一帧迭代。
有什么方法可以使用 LuaJ(或任何其他 Lua api)从 Java 主机一次执行 1 条语句,还是我被迫使用 lex 和 yacc 开发自己的脚本引擎?
欢迎任何好主意,谢谢!