Pregunta

Necesito poder devolver una posición (X, Y) de Java a Lua y no sé cómo hacerlo.Con la API de C, simplemente insertaría los valores en la pila y luego devolvería el número de valores devueltos, pero no parece ser así como lo hace LuaJava.¿Alguna sugerencia?

¿Fue útil?

Solución

El problema puede ser que el primer parámetro sea siempre el propio objeto JavaFunction.Digamos que quieres una función addmult que toma dos números y devuelve su suma y producto.Los parámetros numéricos deben recuperarse como índices 2 y 3, de la siguiente manera:

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

Ahora, deberías obtener un resultado similar en tu código:

print(addmult(3, 5)) --> 8    13
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top