0

Java から Lua に (X, Y) 位置を返せるようにする必要がありますが、その方法がわかりません。C API では値をスタックにプッシュし、戻り値の数を返すだけですが、LuaJava ではそうではないようです。助言がありますか?

4

1 に答える 1

0

問題は、最初のパラメーターが常に JavaFunction オブジェクト自体であることです。addmult2 つの数値を取り、それらの合計と積を返す関数が必要だとします。数値パラメータは、次のようにインデックス 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
于 2012-03-08T19:15:46.283 に答える