diff --git a/src/scenes/base_scene.py b/src/scenes/base_scene.py index 1759103..0a55c3f 100644 --- a/src/scenes/base_scene.py +++ b/src/scenes/base_scene.py @@ -3,9 +3,13 @@ import pygame class BaseScene: def __init__(self, screen: pygame.Surface): self.screen = screen + self.next_scene = None def update(self): pass def handle_event(self, events): - pass \ No newline at end of file + pass + + def switch_to_scene(self, scene_class): + self.next_scene = scene_class(self.screen) \ No newline at end of file diff --git a/src/scenes/game_scene.py b/src/scenes/game_scene.py new file mode 100644 index 0000000..e3da865 --- /dev/null +++ b/src/scenes/game_scene.py @@ -0,0 +1,9 @@ +import pygame +from src.config.color import Color +from src.scenes.base_scene import BaseScene + + +class GameScene(BaseScene): + + def update(self): + pygame.draw.rect(self.screen, Color.a, [10,20,30,40]) \ No newline at end of file diff --git a/src/scenes/main_menu_scene.py b/src/scenes/main_menu_scene.py index 1cfaeb7..90fed3e 100644 --- a/src/scenes/main_menu_scene.py +++ b/src/scenes/main_menu_scene.py @@ -1,6 +1,7 @@ import pygame from src.config.color import Color from src.scenes.base_scene import BaseScene +from src.scenes.game_scene import GameScene class MainMenuScene(BaseScene): @@ -11,7 +12,7 @@ class MainMenuScene(BaseScene): def update(self): pygame.draw.rect(self.screen, Color.white, [10,20,30,40]) if self.button_status: - pygame.draw.rect(self.screen, Color.white, [50,20,30,40]) + self.switch_to_scene(GameScene) def handle_event(self, event): if event.type == pygame.KEYDOWN: diff --git a/start.py b/start.py index 856d05c..ec68a56 100644 --- a/start.py +++ b/start.py @@ -31,6 +31,10 @@ class Game: self.running = False self.scene.handle_event(event) # 当前场景接收事件 + # 检查是否切换场景 + if self.scene.next_scene is not None: + self.scene = self.scene.next_scene + # 清屏 self.screen.fill(GameConfig.bg_color)