In a related question I asked how to get input via IUP. 이것은 시스템을 통과한다는 점을 제외하고는 정상적으로 작동하며 게임에 최적이 아닌 재생율의 영향을받습니다. 내가 진정으로 원하는 것은 주어진 시간에 어떤 키의 현재 상태를 얻을 수있는 능력이다. IUP 또는 다른 방식을 통해이를 수행 할 수있는 방법이 있습니까?루아의 비동기 입력
답변
아마도 적절한 Win32 API, DirectX 또는 기타 루아 모듈에있는 호출을 모두 래핑해야 할 것입니다. IUP에서 키 스트로크 이벤트를 잡아 내기 위해서는 "일반적인"Windows 메시지 메커니즘을 통해 창이나 컨트롤에 전달되어야하며 게임 프레임 워크에서 최선의 방법이 아닐 수도 있습니다.
IUP 타이머 개체를 사용하여 일정에 따라 다시 그리기를 실행할 수 있지만 여전히 키보드 상태를 수집 할 방법이 필요합니다. 게임 패드, 조이스틱 또는 키보드와 마우스 이외의 HID를 사용하려는 경우 IUP는 어떤 경우에도 직접 도움을주지 않습니다.
이 작업은 DLL에 컴파일 된 소량의 C 코드로 쉽게 수행 할 수 있습니다.
API의 종류에 따라 SWIG으로 쉽게 처리 할 수 있습니다. 다른 사람들은 포장을 수공예로 만드는 것이 더 쉽다는 충분한 설치/분해 작업을 할 것입니다.
루아에 대한 Alien 모듈이있어 순수 루아에서 임의의 API로 직접 호출 할 수 있습니다. Alien은 Lua for Windows의 일부로 포함되어 있으며 Luaforge의 프로젝트 페이지를 통해 제공됩니다. 외계인 그 자체는 심지어 플랫폼을 가로 질러서는 약간의 이식성이 있습니다.
이 경로를 따라갈 때 살펴볼 다른 사항은 기존 게임 엔진 중 하나 이상입니다. 일반적으로 이러한 이벤트 루프는 엔진 내부의 이벤트 루프를 숨기지 만 (IUP와 마찬가지로) 데스크톱 애플리케이션보다는 게임 구축에 최적화되어 있습니다.
루아 메일 링리스트에서 소문을 들었습니다. 상당히 자주 언급 되었기 때문에 마음에 떠오르는 것은 LÖVE입니다.
나는 현재 LÖVE를 조사하고 있으며, 지금까지 나는 아주 감명 받았다. 이것은 내가 처음에 찾고 있었던 것 같습니다. –