Question

Je dois pouvoir renvoyer une position (X, Y) de Java vers Lua et je n'arrive pas à comprendre comment le faire.Avec l'API C, vous placeriez simplement les valeurs sur la pile, puis renverriez le nombre de valeurs de retour, mais cela ne semble pas être ainsi que LuaJava procède.Aucune suggestion?

Était-ce utile?

La solution

Le problème peut être que le premier paramètre est toujours l'objet JavaFunction lui-même.Disons que vous voulez une fonction addmult qui prend deux nombres et renvoie leur somme et leur produit.Les paramètres numériques doivent être récupérés sous forme d'index 2 et 3, comme suit :

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

Maintenant, vous devriez obtenir un résultat similaire dans votre code :

print(addmult(3, 5)) --> 8    13
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top