2009-04-13 3 views
3

자바 게임을위한 효율적인 키보드 입력 시스템을 찾고 있습니다.키보드 폴링 시스템

Keyboard Input Polling System

가 (코드에 대한 당신의 생각에 관해서는 언급하시기 바랍니다) 그러나 조금 비효율적 인 것 같습니다 : 현재 내가 여기 몇 가지 코드를 사용하고 있습니다. 나는 단지 새로운 솔루션으로보고 따로 코드를 잡아 당겨 시작했습니다

Pastebin Code

하지만, 누구는 메인 게임에서이 작업을 수행하는 효율적인 방법에 대한 어떤 제안이 않습니다 전체 코드는 여기에서 확인할 수 있습니다 루프 (설명 포함)? 어떤 도움을 주시면 감사하겠습니다.

답변

3

KeyEventListener를 설정하십시오. 호출 할 때 현재 키를 하나의 키 버퍼에 넣습니다.

계산 스레드 또는 폴링 스레드에서 현재 키 버퍼를 주기적으로 쿼리합니다. 이제는 I/O에서 그 상수를 보지 않고주기적인 폴링을 유지하면서 이벤트 리스너가 이벤트 리스너를 사용하여 (기본 하드웨어를 사용하도록 이미 많이 최적화되고 깔끔하게 구현되었습니다.)

+1

게임에서 일반적으로 사용되는 여러 개의 키에는 작동하지 않습니다. – Ron

1

훌륭한 코드라고 생각합니다. 연결된 작성자는 일반적인 KeyListener 푸시 메서드 대신 키보드에서 끌어 오기 스타일 데이터 전송을 구현했습니다. 이 구현은 N-key rollover을 지원하지만 USB가있는 제한은 동시에 6-8 키입니다.

약간 정리하려면주의를 기울이고 싶은 키만 저장하십시오. 그러나 이것은 많은 것을 저장하지는 않을 것이고, 키를 누를 때마다 하나의 int 만 배열에 기록됩니다.

정확하게 비효율적이라고 생각되는 부분은 무엇입니까? 처음에는 링크 된 코드에 루프가 표시되지 않습니다.