У мене є контролер 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 всередині класу, який реалізує інтерфейс. Це дозволяє мені дуже легко читати стан. Вдячні також будь-які альтернативи, які вирішили б мою проблему