summaryrefslogtreecommitdiff
path: root/pycameltris/controller.py
diff options
context:
space:
mode:
authorOlivier Gayot <olivier.gayot@sigexec.com>2021-11-08 17:53:17 +0100
committerOlivier Gayot <olivier.gayot@sigexec.com>2021-11-08 22:05:55 +0100
commit1fe19d3e589bbc5d40b74d007d6b1984cfc34925 (patch)
tree11e63c628f5b8adc4f5711f02e98d555c572fe48 /pycameltris/controller.py
parentc51fd84bc896c74f291b4c5f2c73b5e5852de3e5 (diff)
Make controller classes and screen classes inherit from abstract classes
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
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 = {