我需要能够从java返回到lua的(x,y)位置,我无法弄清楚如何做到这一点。使用C API,您只需将值递到堆栈上,然后返回返回值的数量,但这似乎并不是卢拉杰瓦如何做到。任何建议?

有帮助吗?

解决方案

问题可能是第一个参数始终是JavaFunction对象本身。假设您想要一个函数生成的函数,它需要两个数字,并返回其总和和产品。必须将数字参数作为索引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
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top