2012-03-08 104 views
0

我需要能夠從Java返回一個(X,Y)位置到Lua,我無法弄清楚如何去做。使用C API,你只需將值推入堆棧,然後返回返回值的數量,但這似乎並不像LuaJava那樣。有什麼建議麼?用LuaJava返回多個值

回答

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