diff --git a/src/config/scenes.py b/src/config/scenes.py index 286d91b..cbe7573 100644 --- a/src/config/scenes.py +++ b/src/config/scenes.py @@ -1,3 +1,4 @@ +from src.scenes.empty_scene import EmptyScene from src.scenes.main_menu_scene import MainMenuScene from src.scenes.game_scene import GameScene @@ -5,4 +6,5 @@ from src.scenes.game_scene import GameScene scene_dict = { "MainMenuScene": MainMenuScene, "GameScene": GameScene, + "EmptyScene": EmptyScene, } diff --git a/src/scenes/empty_scene.py b/src/scenes/empty_scene.py new file mode 100644 index 0000000..05d9c0c --- /dev/null +++ b/src/scenes/empty_scene.py @@ -0,0 +1,18 @@ +from src.scenes.base_scene import BaseScene + + +class EmptyScene(BaseScene): + name = "EmptyScene" # 场景名称 + + def __init__(self, screen, clock): + super().__init__(screen, clock) + + def update(self): + """ + 场景每帧更新逻辑 + """ + + def handle_event(self, event): + """ + 接收主循环传来的事件并处理 + """ diff --git a/src/scenes/main_menu_scene.py b/src/scenes/main_menu_scene.py index e0d3ba1..e185943 100644 --- a/src/scenes/main_menu_scene.py +++ b/src/scenes/main_menu_scene.py @@ -18,13 +18,16 @@ class MainMenuScene(BaseScene): """ super().__init__(screen, clock) self.button_status = False + self.mouse_status = False self.debug_status = False + self.secret_keys = ["w","w","s","s","a","d","a","d"] # 上上下下左右左右 + self.secret_key_compare_num = 0 # 设置字体 font_file = os.path.join(data_path(),"Dymon-ShouXieTi.otf") self.font = pygame.font.Font(font_file,16) # 文本 - self.game_info_text = self.font.render('按任意键开始游戏,ESC退出', True, Color.white) + self.game_info_text = self.font.render('同时按下Z和X开始游戏,按ESC退出', True, Color.white) # 雨滴列表 self.rain_max = 50 @@ -38,6 +41,9 @@ class MainMenuScene(BaseScene): # 按键按下则切换场景 if self.button_status: self.switch_to_scene("GameScene") + if self.secret_key_compare_num == len(self.secret_keys): + print("我去,是通关秘籍!") + self.switch_to_scene("EmptyScene") # 显示提示文本 screen_rect = self.screen.get_rect() # 获取屏幕矩形 @@ -59,12 +65,20 @@ class MainMenuScene(BaseScene): 接收主循环传来的事件并处理 """ if event.type == pygame.KEYDOWN: + keys = pygame.key.get_pressed() # 获取所有按键状态,用于组合按键判断 if event.key == pygame.K_ESCAPE: return "exit" # 主循环接收返回,为exit时设置running为False,退出游戏 - else: + elif keys[pygame.K_z] and keys[pygame.K_x]: # 同时按下Z和X self.button_status = True + + # 判断是否按顺序按下秘籍 + if event.unicode.lower() == self.secret_keys[self.secret_key_compare_num]: + self.secret_key_compare_num += 1 + else: + self.secret_key_compare_num = 0 + elif event.type == pygame.MOUSEBUTTONDOWN: - self.button_status = True + self.mouse_status = True def __show(self, info, dest=(0, 0)): """