1 import GameKeys
2 from MyConfigConnector import MY_SingleConfigConnector
3
5 """
6 singleton class to control the keyboard input
7 @type FWD_key: Integer
8 @ivar FWD_key: ascii code of the keystroke for forward movement
9 @type BWD_key: Integer
10 @ivar BWD_key: ascii code of the keystroke for backward movement
11 @type DXR_key: Integer
12 @ivar DXR_key: ascii code of the keystroke for dexter movement
13 @type SNL_key: Integer
14 @ivar SNL_key: ascii code of the keystroke for sinsitral movement
15 @type UWD_key: Integer
16 @ivar UWD_key: ascii code of the keystroke for upward movement
17 @type DWD_key: Integer
18 @ivar DWD_key: ascii code of the keystroke for downward movement
19 @type FWD: SCA_KeyboardSensor
20 @ivar FWD: keyboard sensor which listens to a specific keystroke
21 @type BWD: SCA_KeyboardSensor
22 @ivar BWD: keyboard sensor which listens to a specific keystroke
23 @type DXR: SCA_KeyboardSensor
24 @ivar DXR: keyboard sensor which listens to a specific keystroke
25 @type SNL: SCA_KeyboardSensor
26 @ivar SNL: keyboard sensor which listens to a specific keystroke
27 @type UWD: SCA_KeyboardSensor
28 @ivar UWD: keyboard sensor which listens to a specific keystroke
29 @type DWD: SCA_KeyboardSensor
30 @ivar DWD: keyboard sensor which listens to a specific keystroke
31 @type init: Boolean
32 @ivar init: True if controlkeys were initialized
33 """
34
35 __instance = None
36
38 if self.__instance is None:
39 self.__instance = object.__new__(self, *args, **kargs)
40
41
42
43 self.FWD_key = 0
44 self.BWD_key = 0
45 self.DXR_key = 0
46 self.SNL_key = 0
47 self.UWD_key = 0
48 self.DWD_key = 0
49
50
51 self.FWD = None
52 self.BWD = None
53 self.DXR = None
54 self.SNL = None
55 self.UWD = None
56 self.DWD = None
57
58 self.init = False
59
60 return self.__instance
61
64
66 """
67 set sensors to the right variables
68
69 @type controller: SCA_IController
70 @param controller: the controller on which the keyboard sensors are connected to
71 """
72
73 self.FWD = controller.sensors["forward"]
74 self.BWD = controller.sensors["back"]
75 self.DXR = controller.sensors["right"]
76 self.SNL = controller.sensors["left"]
77 self.UWD = controller.sensors["jump"]
78 self.DWD = controller.sensors["crouch"]
79
80 self.init = True
81
93
95 """
96 change key assignments dependent on which plane is in use; normal use without any effect just call this method without any parameters
97
98 @type plane: Integer [0,1,2]
99 @param plane: the plane number on which the user is right now
100 @type opposite: Boolean
101 @param opposite: whether it is the up or down on the specific plane
102 """
103
104 if plane == 0:
105 if opposite:
106 self.FWD.key = self.BWD_key
107 self.BWD.key = self.FWD_key
108 self.DXR.key = self.DXR_key
109 self.SNL.key = self.SNL_key
110 self.UWD.key = self.DWD_key
111 self.DWD.key = self.UWD_key
112 else:
113 self.FWD.key = self.FWD_key
114 self.BWD.key = self.BWD_key
115 self.DXR.key = self.DXR_key
116 self.SNL.key = self.SNL_key
117 self.UWD.key = self.UWD_key
118 self.DWD.key = self.DWD_key
119 elif plane == 1:
120 if opposite:
121 self.FWD.key = self.DWD_key
122 self.BWD.key = self.UWD_key
123 self.DXR.key = self.DXR_key
124 self.SNL.key = self.SNL_key
125 self.UWD.key = self.FWD_key
126 self.DWD.key = self.BWD_key
127 else:
128 self.FWD.key = self.UWD_key
129 self.BWD.key = self.DWD_key
130 self.DXR.key = self.DXR_key
131 self.SNL.key = self.SNL_key
132 self.UWD.key = self.BWD_key
133 self.DWD.key = self.FWD_key
134
135 elif plane == 2:
136 if opposite:
137 self.FWD.key = self.FWD_key
138 self.BWD.key = self.BWD_key
139 self.DXR.key = self.DWD_key
140 self.SNL.key = self.UWD_key
141 self.UWD.key = self.DXR_key
142 self.DWD.key = self.SNL_key
143 else:
144 self.FWD.key = self.FWD_key
145 self.BWD.key = self.BWD_key
146 self.DXR.key = self.UWD_key
147 self.SNL.key = self.DWD_key
148 self.UWD.key = self.SNL_key
149 self.DWD.key = self.DXR_key
150 else:
151 print "nothing changed"
152