2012-03-08 10 views
0

JavaからLuaに(X、Y)の位置を返すことができる必要があります。 C APIでは、値をスタックにプッシュして戻り値の数を返しますが、それはLuaJavaの処理方法とは違います。助言がありますか?LuaJavaで複数の値を返す

答えて

0

問題は、最初のパラメータが常にJavaFunctionオブジェクトそのものである可能性があります。 addmultの2つの数値を受け取り、その合計と積を返す関数が欲しいとしましょう。次のように数値パラメータは、インデックス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