From 7a8c45bed2d34e79acc963949a4f369d06c771b7 Mon Sep 17 00:00:00 2001 From: Michelle Saron Date: Sun, 1 May 2022 22:49:19 -0600 Subject: [PATCH] Add settings, new game, and quit options to the main menu --- rpg/views/loading_view.py | 3 ++ rpg/views/main_menu_view.py | 55 +++++++++++++++++++++++++++++++++++++ rpg/views/settings_view.py | 37 +++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 rpg/views/settings_view.py diff --git a/rpg/views/loading_view.py b/rpg/views/loading_view.py index 9f58b54b..a34cb58b 100644 --- a/rpg/views/loading_view.py +++ b/rpg/views/loading_view.py @@ -7,6 +7,7 @@ from rpg.views.game_view import GameView from rpg.views.inventory_view import InventoryView from rpg.views.main_menu_view import MainMenuView +from rpg.views.settings_view import SettingsView class LoadingView(arcade.View): @@ -56,5 +57,7 @@ def on_update(self, delta_time: float): self.window.views["inventory"].setup() self.window.views["main_menu"] = MainMenuView() self.window.views["main_menu"].setup() + self.window.views["settings"] = SettingsView() + self.window.views["settings"].setup() self.window.show_view(self.window.views["game"]) diff --git a/rpg/views/main_menu_view.py b/rpg/views/main_menu_view.py index e4dc5d7c..9c56456d 100644 --- a/rpg/views/main_menu_view.py +++ b/rpg/views/main_menu_view.py @@ -24,6 +24,54 @@ def on_draw(self): width=self.window.width, ) + arcade.draw_text( + "Settings (Y)", + self.window.width / 2, + self.window.height - 150, + arcade.color.AMAZON, + 32, + anchor_x="center", + anchor_y="center", + align="center", + width=self.window.width, + ) + + arcade.draw_text( + "Close Game (Q)", + self.window.width / 2, + self.window.height - 250, + arcade.color.AMAZON, + 32, + anchor_x="center", + anchor_y="center", + align="center", + width=self.window.width, + ) + + arcade.draw_text( + "Resume Game (ESC)", + self.window.width / 2, + self.window.height - 350, + arcade.color.AMAZON, + 32, + anchor_x="center", + anchor_y="center", + align="center", + width=self.window.width, + ) + + arcade.draw_text( + "New Game (N)", + self.window.width / 2, + self.window.height - 450, + arcade.color.AMAZON, + 32, + anchor_x="center", + anchor_y="center", + align="center", + width=self.window.width, + ) + def setup(self): pass @@ -34,3 +82,10 @@ def on_show_view(self): def on_key_press(self, symbol: int, modifiers: int): if symbol == arcade.key.ESCAPE: self.window.show_view(self.window.views["game"]) + elif symbol == arcade.key.Y: + self.window.show_view(self.window.views["settings"]) + elif symbol == arcade.key.Q: + self.window.close() + elif symbol == arcade.key.N: + self.window.views["game"].setup() + self.window.show_view(self.window.views["game"]) diff --git a/rpg/views/settings_view.py b/rpg/views/settings_view.py new file mode 100644 index 00000000..39f8b545 --- /dev/null +++ b/rpg/views/settings_view.py @@ -0,0 +1,37 @@ +""" +Settings +""" +import arcade +import rpg.constants as constants + + +class SettingsView(arcade.View): + def __init__(self): + super().__init__() + self.started = False + arcade.set_background_color(arcade.color.ALMOND) + + def on_draw(self): + arcade.start_render() + arcade.draw_text( + "Settings", + self.window.width / 2, + self.window.height - 50, + arcade.color.ALLOY_ORANGE, + 44, + anchor_x="center", + anchor_y="center", + align="center", + width=self.window.width, + ) + + def setup(self): + pass + + def on_show_view(self): + arcade.set_background_color(arcade.color.ALMOND) + arcade.set_viewport(0, self.window.width, 0, self.window.height) + + def on_key_press(self, symbol: int, modifiers: int): + if symbol == arcade.key.ESCAPE: + self.window.show_view(self.window.views["main_menu"])