我有一个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)
但这似乎有些笨拙,并且在“绑定按钮”屏幕上确实很痛苦。
有人可以给我指出处理控制器输入的“正确”方法。
注意:我在实现接口的类中使用SlimDX。这使我可以非常轻松地读取状态。任何可以解决我的问题的替代方案也将受到赞赏