1

如果我做

CoerceJavaToLua (new Vector2(3, 5));

它会返回什么,我如何访问 lua 中的值?我是否像这样传递返回值:

globals.load(CoerceJavaToLua(new Vector2(3, 5)));
4

1 回答 1

1

它将 Java 值转换为包含元表的 LuaValue,以便在 lua 脚本中进行操作。

尝试在全局变量中设置一个强制值,而不是加载,然后执行一个使用该值的脚本:

Globals globals = JsePlatform.standardGlobals();   
globals.set("image", CoerceJavaToLua.coerce(
        new BufferedImage(30,40,BufferedImage.TYPE_INT_RGB)));
LuaValue chunk = globals.load(
        "print(image:getWidth(), image:getHeight());");
chunk.call();

输出:

30  40

图像上的任何公共字段或方法都可以访问,并且返回值是强制的,因此 Java 中的大多数操作都可以在 lua 中执行。

查看 swing 示例以查看包含回调处理的详细示例。

http://www.luaj.org/luaj/3.0/examples/lua/swingapp.lua

于 2016-01-23T17:25:50.580 回答