Module MyControlKeys
[hide private]
[frames] | no frames]

Source Code for Module MyControlKeys

  1  import GameKeys 
  2  from MyConfigConnector import MY_SingleConfigConnector 
  3   
4 -class MY_SingleControlKeys(object):
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 # the unique instance 36
37 - def __new__(self, *args, **kargs):
38 if self.__instance is None: 39 self.__instance = object.__new__(self, *args, **kargs) 40 41 # __init__ section 42 # ascii key values 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 # sensor variables 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
62 - def __init__(self):
63 pass
64
65 - def initControlKeys(self, controller):
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
82 - def setControlKeys(self):
83 """ 84 reads ascii key values from the config list and sets it to the right memeber variables 85 """ 86 87 self.FWD_key = MY_SingleConfigConnector().getControlKeyValue('fwd') 88 self.BWD_key = MY_SingleConfigConnector().getControlKeyValue('bwd') 89 self.DXR_key = MY_SingleConfigConnector().getControlKeyValue('dxr') 90 self.SNL_key = MY_SingleConfigConnector().getControlKeyValue('snl') 91 self.UWD_key = MY_SingleConfigConnector().getControlKeyValue('uwd') 92 self.DWD_key = MY_SingleConfigConnector().getControlKeyValue('dwd')
93
94 - def setControlKeysEffect(self, plane=0, opposite=False):
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