From c8a7e4e650521f465eebd352a1764d0427b74b44 Mon Sep 17 00:00:00 2001 From: Jan Lerking Date: Sat, 22 Mar 2025 10:47:56 +0100 Subject: [PATCH] Updates. /JL --- controls/__init__.py | 2 +- controls/controller.py | 76 +++++++++++++++++++++++++ controls/controlsbase.py | 14 +---- controls/joystick.py | 23 -------- controls/keyboard.py | 8 ++- screens/gameoverscreen.py | 0 screens/highscorescreen.py | 0 screens/settingsscreen.py | 0 {startscreen => screens}/startscreen.py | 0 9 files changed, 85 insertions(+), 38 deletions(-) create mode 100644 controls/controller.py delete mode 100644 controls/joystick.py create mode 100644 screens/gameoverscreen.py create mode 100644 screens/highscorescreen.py create mode 100644 screens/settingsscreen.py rename {startscreen => screens}/startscreen.py (100%) diff --git a/controls/__init__.py b/controls/__init__.py index bae5b71..030f1c5 100644 --- a/controls/__init__.py +++ b/controls/__init__.py @@ -1,2 +1,2 @@ -from . import joystick +from . import controller from . import keyboard \ No newline at end of file diff --git a/controls/controller.py b/controls/controller.py new file mode 100644 index 0000000..a1fddee --- /dev/null +++ b/controls/controller.py @@ -0,0 +1,76 @@ +import pygame +from controls.controlsbase import ControlsBase + +class ControllerControls(ControlsBase): + def __init__(self, joy): + self.device = joy + self.instance_id: int = self.device.get_instance_id() + self.name = self.device.get_name() + self.numaxis: int = self.device.get_numaxis() + self.axis: list = [] + self.numhats: int = self.device.get_numhats() + self.hats: list = [] + self.numbuttons: int = self.device.get_numbuttons() + self.buttons: list = [] + self.power_level: str = "" + + def handle_input(self, event): + pass + + def left(self): + pass + + def right(self): + pass + + def up(self): + pass + + def down(self): + pass + + def pause(self): + pass + + def rumble(self): + pass + + @property + def name(self) -> str: + return self._name + + @name.setter + def name(self, name: str) -> None: + self._name = name + + @property + def axis(self) -> list: + return self._axis + + @axis.setter + def axis(self) -> None: + self._axis = [self.device.get_axis(a) for a in range(self.numaxis)] + + @property + def hats(self) -> list: + return self._hats + + @hats.setter + def hats(self) -> None: + self.hats = [self.device.get_hats(h) for h in range(self.numhats)] + + @property + def buttons(self) -> list: + return self._buttons + + @buttons.setter + def buttons(self) -> None: + self._buttons = [self.device.get_buttons(b) for b in range(self.numbuttons)] + + @property + def power_level(self) -> str: + return self._power_level + + @power_level.setter + def power_level(self) -> None: + self._power_level = self.device.get_power_level() \ No newline at end of file diff --git a/controls/controlsbase.py b/controls/controlsbase.py index 452964d..d6cd6ca 100644 --- a/controls/controlsbase.py +++ b/controls/controlsbase.py @@ -5,17 +5,5 @@ from abc import ABC, abstractmethod class ControlsBase(ABC): @abstractmethod - def left(self): - pass - - def right(self): - pass - - def up(self): - pass - - def down(self): - pass - - def pause(self): + def handle_input(self, event): pass \ No newline at end of file diff --git a/controls/joystick.py b/controls/joystick.py deleted file mode 100644 index 6f64e34..0000000 --- a/controls/joystick.py +++ /dev/null @@ -1,23 +0,0 @@ -from controls.controlsbase import ControlsBase - -class JoystickControls(ControlsBase): - def __init__(self): - pass - - def left(self): - pass - - def right(self): - pass - - def up(self): - pass - - def down(self): - pass - - def pause(self): - pass - - def rumble(self): - pass \ No newline at end of file diff --git a/controls/keyboard.py b/controls/keyboard.py index 7e03b85..af8f860 100644 --- a/controls/keyboard.py +++ b/controls/keyboard.py @@ -7,6 +7,9 @@ class KeyboardControls(ControlsBase): def __init__(self): pass + def handle_input(self, event): + pass + def left(self): pass @@ -20,4 +23,7 @@ class KeyboardControls(ControlsBase): pass def pause(self): - pass \ No newline at end of file + pass + + def rumble(self): + return \ No newline at end of file diff --git a/screens/gameoverscreen.py b/screens/gameoverscreen.py new file mode 100644 index 0000000..e69de29 diff --git a/screens/highscorescreen.py b/screens/highscorescreen.py new file mode 100644 index 0000000..e69de29 diff --git a/screens/settingsscreen.py b/screens/settingsscreen.py new file mode 100644 index 0000000..e69de29 diff --git a/startscreen/startscreen.py b/screens/startscreen.py similarity index 100% rename from startscreen/startscreen.py rename to screens/startscreen.py