summaryrefslogtreecommitdiff
path: root/pycameltris/controller.py
diff options
context:
space:
mode:
Diffstat (limited to 'pycameltris/controller.py')
-rw-r--r--pycameltris/controller.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/pycameltris/controller.py b/pycameltris/controller.py
index 9878536..86f5bcb 100644
--- a/pycameltris/controller.py
+++ b/pycameltris/controller.py
@@ -1,3 +1,4 @@
+import abc
import enum
import pygame
@@ -13,7 +14,21 @@ class Input(enum.Enum):
QUIT = 6
-class JoystickController:
+class Controller(abc.ABC):
+ @abc.abstractmethod
+ def is_pressed(self, input_: Input):
+ pass
+
+ @abc.abstractmethod
+ def get_input_down(self, event):
+ pass
+
+ @abc.abstractmethod
+ def get_input_up(self, event):
+ pass
+
+
+class JoystickController(Controller):
class PS3Controller(enum.Enum):
CROSS = 0
@@ -57,7 +72,7 @@ class JoystickController:
return None
-class KeyboardController:
+class KeyboardController(Controller):
def __init__(self, keyboard):
self.keyboard = keyboard
self.mapping = {