Возвращает несколько значений с помощью LuaJava
Вопрос
Мне нужно иметь возможность возвращать позицию (X, Y) из Java в Lua, и я не могу понять, как это сделать.С помощью C API вы бы просто поместили значения в стек, а затем вернули количество возвращаемых значений, но, похоже, LuaJava делает это не так.Есть какие-нибудь предложения?
Решение
Проблема может заключаться в том, что первым параметром всегда является сам объект JavaFunction.Допустим, вам нужна функция 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
Не связан с StackOverflow