Python 处理同时按下按钮和改变换档状态

Python 处理同时按下按钮和改变换档状态,python,controls,input,user-input,joystick,Python,Controls,Input,User Input,Joystick,我目前正在开发一个(Python2.5)应用程序,它处理来自游戏控制器的输入。我们将一个按钮指定为shift按钮,以动态更改其他按钮的映射(inputtype,value->function)。映射还取决于应用程序运行的模式。我们遇到了很多棘手的情况(例如,如何处理按下shift、按下按钮x、释放shift、释放按钮x),我想知道是否有任何已知的好结构/架构/模式用于处理此类输入?卫星机是处理复杂输入的好模式 这是一台处理上述顺序的机器 您可以使用开关或状态模式实现状态机(请参见)我们希望避免

我目前正在开发一个(Python2.5)应用程序,它处理来自游戏控制器的输入。我们将一个按钮指定为shift按钮,以动态更改其他按钮的映射(inputtype,value->function)。映射还取决于应用程序运行的模式。我们遇到了很多棘手的情况(例如,如何处理
按下shift、按下按钮x、释放shift、释放按钮x),我想知道是否有任何已知的好结构/架构/模式用于处理此类输入?

卫星机是处理复杂输入的好模式

这是一台处理上述顺序的机器


您可以使用开关或状态模式实现状态机(请参见)

我们希望避免显式状态机,因为它很快就会变得笨拙。更详细地说,我们正在处理一个10按钮控制器,其中一个按钮在按下时会改变所有其他按钮的操作。处理以下情况时,状态数会迅速增加:按下shift时,任何按钮保持不变;按下shift时,任何两个按钮保持不变;按下shift时,任何三个按钮保持不变。加上之前按住的换档与之后按下的换档的所有相反,等等。它只是变得一团糟