Domanda

Devo essere in grado di restituire una posizione (x, y) da Java a Lua e non riesco a capire come farlo.Con l'API C, premere solo i valori sulla pila e quindi restituire il numero di valori di ritorno, ma non sembra essere come Luajava lo fa.Qualche suggerimento?

È stato utile?

Soluzione

Il problema potrebbe essere che il primo parametro è sempre l'oggetto Javafunction stesso.Diciamo che vuoi una funzione addmult che richiede due numeri e restituisce la sua somma e il loro prodotto.I parametri numerici devono essere recuperati come indici 2 e 3, come segue:

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");
.

Ora, dovresti ottenere un risultato simile nel tuo codice:

print(addmult(3, 5)) --> 8    13
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top