문제
Java에서 Lua로 (X, Y) 위치를 반환할 수 있어야 하는데 어떻게 해야 할지 모르겠습니다.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