我需要能够从Java返回一个(X,Y)位置到Lua,但是我不知道怎么做。使用C,您只需将值推入堆栈,然后返回返回值的数量,但LuaJava似乎不是这样做的。有什么建议吗?
发布于 2012-03-09 03:15:46
问题可能是第一个参数始终是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 13https://stackoverflow.com/questions/9622365
复制相似问题