programming-bongocat/input_manager.py

51 lines
1.3 KiB
Python
Raw Normal View History

2018-12-10 22:05:51 +01:00
class InputManager:
currently_pressed_keys = []
left_paw_keys = []
right_paw_keys = []
shifted_keys = {}
2018-12-10 22:05:51 +01:00
def init(self, linux):
if linux:
import keylist_linux_fi as keys
else:
import keylist_win_fi as keys
2018-12-10 22:05:51 +01:00
self.right_paw_keys = keys.right_paw_keys
self.left_paw_keys = keys.left_paw_keys
self.shifted_keys = keys.shifted_keys
2018-12-11 00:52:04 +01:00
2018-12-10 22:05:51 +01:00
def on_update(self, down):
pass
def press_key(self, key):
if not key in self.currently_pressed_keys:
self.currently_pressed_keys.append(key)
self.on_update(True)
def release_key(self, key):
if key in self.currently_pressed_keys:
self.currently_pressed_keys.remove(key)
self.on_update(False)
shifted = self.shifted_keys.get(key)
if shifted in self.currently_pressed_keys:
self.currently_pressed_keys.remove(key)
self.on_update(False)
2018-12-10 22:05:51 +01:00
def left_keys_pressed(self):
pressed = False
for key in self.currently_pressed_keys:
if key in self.left_paw_keys:
pressed = True
return pressed
def right_keys_pressed(self):
pressed = False
for key in self.currently_pressed_keys:
if key in self.right_paw_keys:
pressed = True
return pressed