문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top