응용 프로그램의 입력으로 사용하려는 XBox360 컨트롤러가 있습니다.
내가 해결할 수없는 것은 인터페이스를 통해 이것을 노출시키는 가장 좋은 방법입니다.
배후에서 컨트롤러를 처리하는 클래스는 폴링 버튼 상태에 의존합니다.
나는 처음에 무언가를 시도했다.
Event ButtonPressed() as ButtonEnum
어디 ButtonEnum
했다 ButtonRed
, ButtonStart
등 ...
이것은 버튼 누름 만 지원하고 보류 / 패턴 (두 번 누르기 등)이 아니라는 점에서 약간 제한적입니다.
다음 아이디어는 단순히 버튼 상태를 앱에 노출시키는 것입니다.
Property RedPressed as Boolean
Property StartPressed as Boolean
Property Thumb1XAxis as Double
이것은 매우 유연하지만 실제로 앱에 너무 많은 작업을 강제하고 앱이 폴링해야합니다. 가능하면 이벤트 중심을 선호합니다.
여러 이벤트를 추가하는 것을 고려했습니다. 예 :
Event ButtonPressed(Button as ButtonEnum)
Event ButtonPressedTwice(Button as ButtonEnum)
Event ButtonHeldStart(Button as ButtonEnum)
Event ButtonHeldEnd(Button as ButtonEnum)
그러나 이것은 약간 어렴풋하게 보이고 "바인드 버튼"화면에서 실제 고통이었습니다.
누군가 컨트롤러의 입력을 처리하는 "올바른"방법을 알려 주시겠습니까?
NB : 인터페이스를 구현하는 클래스 내에서 SlimDX를 사용하고 있습니다. 이를 통해 상태를 매우 쉽게 읽을 수 있습니다. 내 문제를 해결할 수있는 대안도 높이 평가됩니다.