From 8c64751c96b675822c80b914d373bde38f69e42a Mon Sep 17 00:00:00 2001 From: csd4ni3l Date: Wed, 25 Jun 2025 10:25:37 +0200 Subject: [PATCH] Add controller exiting with B button --- game/iter_fractal_viewer.py | 4 +++- game/sierpinsky_carpet.py | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/game/iter_fractal_viewer.py b/game/iter_fractal_viewer.py index e4b3de0..7a6cb17 100644 --- a/game/iter_fractal_viewer.py +++ b/game/iter_fractal_viewer.py @@ -66,9 +66,11 @@ class IterFractalViewer(arcade.gui.UIView): self.has_controller = True def on_button_press(self, controller, button_name): - if button_name == "a" and self.has_controller: + if button_name == "a": self.zoom_start_position = self.cursor_sprite.center_x, self.cursor_sprite.center_y self.dragging_with_controller = True + elif button_name == "b": + self.main_exit() def on_button_release(self, controller, button_name): if button_name == "a" and self.dragging_with_controller: diff --git a/game/sierpinsky_carpet.py b/game/sierpinsky_carpet.py index 608165e..96cc73a 100644 --- a/game/sierpinsky_carpet.py +++ b/game/sierpinsky_carpet.py @@ -37,15 +37,6 @@ class SierpinskyCarpetViewer(arcade.gui.UIView): self.sprite_list.append(self.cursor_sprite) self.has_controller = True - def on_stick_motion(self, controller, name, vector): - if name == "leftstick": - self.cursor_sprite.center_x += vector.x * 5 - self.cursor_sprite.center_y += vector.y * 5 - - def main_exit(self): - from menus.main import Main - self.window.show_view(Main(self.pypresence_client)) - def setup_ui(self): self.anchor = self.add_widget(arcade.gui.UIAnchorLayout(size_hint=(1, 1))) @@ -85,6 +76,17 @@ class SierpinskyCarpetViewer(arcade.gui.UIView): def on_button_press(self, controller, name): if name == "a": self.on_mouse_press(self.cursor_sprite.left, self.cursor_sprite.bottom, arcade.MOUSE_BUTTON_LEFT, 0) + elif name == "b": + self.main_exit() + + def on_stick_motion(self, controller, name, vector): + if name == "leftstick": + self.cursor_sprite.center_x += vector.x * 5 + self.cursor_sprite.center_y += vector.y * 5 + + def main_exit(self): + from menus.main import Main + self.window.show_view(Main(self.pypresence_client)) def on_draw(self): self.window.clear()