我需要能够从Java返回(X,Y)位置到Lua,我无法弄清楚如何做到这一点。使用C API,您只需将值推送到堆栈,然后返回返回值的数量,但这似乎不是LuaJava如何做到的。有什么建议吗?
答案 0 :(得分: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