LuaJ(或任何其他Java LUA解释器) - 您是否可以从Java调用LUA脚本而无需等待它返回?

时间:2014-06-24 12:00:13

标签: java lua luaj

我一直在为Android编写一个RPG游戏引擎,我已经到了我认为我需要为我的战斗引擎添加脚本语言的地步。它太复杂了,无法通过XML配置来驱动游戏内容,就像我以前一直在做的那样。看起来LUA是游戏开发社区选择的脚本语言,所以我一直在做一些研究。由于引擎是用Java编写的,我正在考虑使用LuaJ作为我的LUA解释器,因为我发现一些旧线程表明它可能是最好的Java LUA解释器,但是如果有人对更好的解释器有更多的当前意见,我全是耳朵。

无论如何,我需要能够从Java调用LUA脚本,并继续游戏线程执行而无需等待脚本返回。这可能与LuaJ或任何其他流行的基于Java的解释器?我知道我总是可以将脚本调用放在自己的线程中,但我可能会同时激活许多脚本,这很浪费,因为我还不需要返回值。

1 个答案:

答案 0 :(得分:0)

如果你想要任何东西与游戏线程并行运行,你必须把它放在自己的线程中。

如果你不想为每次通话启动一个线程,你可以使用某种Executor(http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executor.html,例如ThreadPoolExecutor)。

像这样:https://stackoverflow.com/a/14286452/3759173