0

我需要能够将 (X, Y) 位置从 Java 返回到 Lua,但我不知道该怎么做。使用 C API,您只需将值推送到堆栈上,然后返回返回值的数量,但这似乎不是 LuaJava 的做法。有什么建议么?

4

1 回答 1

0

问题可能在于第一个参数始终是 JavaFunction 对象本身。假设您想要一个addmult接受两个数字并返回它们的总和和乘积的函数。数字参数必须作为索引 2 和 3 检索,如下所示:

JavaFunction addmult = new JavaFunction(L) {                
    @Override
    public int execute() throws LuaException {
        double x = L.toNumber(2);
        double y = L.toNumber(3);
        L.pushNumber(x+y);
        L.pushNumber(x*y);
        return 2;
    }
};
addmult.register("addmult");

现在,您应该在代码中得到类似的结果:

print(addmult(3, 5)) --> 8    13
于 2012-03-08T19:15:46.283 回答