質問

JavaからLuaへの(x、y)の位置を返すことができる必要があり、その方法を理解することはできません。C APIを使用すると、値をスタックにプッシュしてから戻り値の数を返しますが、Luajavaがどのようにしているのかはそうではありません。任意の提案?

役に立ちましたか?

解決

問題は、最初のパラメータが常にJavaFunctionオブジェクト自体の場合でもあります。2つの数字をとる関数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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top