From 887bef6035a25ce14010945e051626f2a4b9949a Mon Sep 17 00:00:00 2001 From: chicrobot Date: Thu, 30 Jul 2026 02:03:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E5=87=BA=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=96=B9=E5=BC=8F=EF=BC=9A=E4=B8=8B=E4=B8=80=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E5=90=8D=E7=A7=B0=E4=B8=BA=E2=80=9Cgame=5Fexit?= =?UTF-8?q?=E2=80=9D=E6=97=B6=E9=80=80=E5=87=BA=E6=B8=B8=E6=88=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scenes/base_scene.py | 8 +++++++- start.py | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/scenes/base_scene.py b/src/scenes/base_scene.py index 4c40730..bebede3 100644 --- a/src/scenes/base_scene.py +++ b/src/scenes/base_scene.py @@ -25,4 +25,10 @@ class BaseScene: """ 切换场景 """ - self.next_scene = scene_name \ No newline at end of file + self.next_scene = scene_name + + def exit(self): + """ + 退出游戏 + """ + self.next_scene = "game_exit" \ No newline at end of file diff --git a/start.py b/start.py index f551c1e..7274aba 100644 --- a/start.py +++ b/start.py @@ -32,9 +32,7 @@ class Game: for event in pygame.event.get(): # 这里已经获取了事件,事件队列被清空,在场景的update中再次获取将没有事件 if event.type == pygame.QUIT: self.running = False - result = self.scene.handle_event(event) # 当前场景接收事件 - if result == "exit": - self.running = False + self.scene.handle_event(event) # 当前场景接收事件 # 检查是否切换场景 if self.scene.next_scene is not None: @@ -47,6 +45,9 @@ class Game: # 场景每帧更新逻辑运行 self.scene.update() + # 当场景的下一场景为game_exit时退出游戏 + if self.scene.next_scene == "game_exit": + self.running = False # 更新显示 pygame.display.update()