2016-07-06 18 views
0

slimdx를 사용하여 X 박스 컨트롤러의 버튼 누르기를 해석하고 있습니다. xbox 버튼 상태를 읽으려는 모든 200ms를 폴링하고 모든 것이 작동합니다. 내가 사용SlimDx 버튼을 눌렀을 때의 이벤트

 JoystickState state = Joystick.GetCurrentState(); 
     // get buttons states 
     bool[] buttonsPressed = state.GetButtons(); 

어쨌든 폴링 대신 버튼을 눌러 이벤트를 생성합니까? 설명하는 것은 내 투표 시간이 5 초인지를 상상해보십시오. 그리고 사용자는 2 초에 버튼을 눌러서 그것을 놓습니다. 다음 투표 시간에 내 응용 프로그램에서 단추를 눌렀다는 것을 결코 알 수 없습니다.

답변

1

아니요 - DirectX에서 폴링해야합니다. 이를 효율적으로 수행하려면 폴링 스레드를 만들고 스레드 간 이벤트를 소비하는 스레드에 전달하는 클래스가 필요합니다.