From 05144d9a1b15b5c361632a482f2faeceaf640b69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Sat, 30 Jul 2022 10:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=B8=AE=E5=8A=A9=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- pypvz.py | 1 + resources/graphics/Screen/HelpScreen.png | Bin 0 -> 78407 bytes source/constants.py | 6 +- source/state/mainmenu.py | 141 ++++++++++++----------- source/state/screen.py | 90 ++++++++++----- 6 files changed, 144 insertions(+), 96 deletions(-) create mode 100644 resources/graphics/Screen/HelpScreen.png diff --git a/README.md b/README.md index 07eadc6..9d3dde7 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ * 支持自定义游戏速度倍率 * 保存在游戏存档文件中,可以通过修改`game rate`值更改速度倍率 * 游戏完成成就显示 - * 冒险模式全部完成显示银向日葵奖杯 + * 任意一游戏模式全部完成显示银向日葵奖杯 * 所有模式全部完成显示金向日葵奖杯 * 光标移动到向日葵奖杯上是显示当前各个模式通关次数 diff --git a/pypvz.py b/pypvz.py index 2d75121..8e4a2bf 100755 --- a/pypvz.py +++ b/pypvz.py @@ -32,6 +32,7 @@ if __name__=="__main__": c.GAME_LOSE: screen.GameLoseScreen(), c.LEVEL: level.Level(), c.AWARD_SCREEN: screen.AwardScreen(), + c.HELP_SCREEN: screen.HelpScreen(), } game.setup_states(state_dict, c.MAIN_MENU) game.run() diff --git a/resources/graphics/Screen/HelpScreen.png b/resources/graphics/Screen/HelpScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5e535d6fb4ac22ef1078038bb7149e484fffee GIT binary patch literal 78407 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 literal 0 HcmV?d00001 diff --git a/source/constants.py b/source/constants.py index df9695f..486b8ae 100755 --- a/source/constants.py +++ b/source/constants.py @@ -71,6 +71,7 @@ PARCHMENT_YELLOW = (207, 146, 83) # 退出游戏按钮 EXIT = "exit" +HELP = "help" # 游戏界面可选的菜单 LITTLE_MENU = "littleMenu" BIG_MENU = "bigMenu" @@ -110,6 +111,7 @@ GAME_LOSE = "game lose" GAME_VICTORY = "game victory" LEVEL = "level" AWARD_SCREEN = "award screen" +HELP_SCREEN = "help screen" # 界面图片文件名 MAIN_MENU_IMAGE = "MainMenu" @@ -117,6 +119,7 @@ OPTION_ADVENTURE = "Adventure" GAME_LOSE_IMAGE = "GameLose" GAME_VICTORY_IMAGE = "GameVictory" AWARD_SCREEN_IMAGE = "AwardScreen" +HELP_SCREEN_IMAGE = "HelpScreen" # 地图相关内容 BACKGROUND_NAME = "Background" @@ -509,8 +512,7 @@ SNORKELZOMBIE = "SnorkelZombie" BOOMDIE = "BoomDie" # 对僵尸的攻击类型设置 -ZOMBIE_DEAFULT_DAMAGE = "helmet2First" -ZOMBIE_HELMET_2_FIRST = "helmet2First" # 优先攻击二类防具 +ZOMBIE_DEAFULT_DAMAGE = ZOMBIE_HELMET_2_FIRST = "helmet2First" # 优先攻击二类防具 ZOMBIE_COMMON_DAMAGE = "commonDamage" # 优先攻击僵尸与一类防具的整体 ZOMBIE_RANGE_DAMAGE = "rangeDamage" # 范围攻击,同时伤害二类防具与(僵尸与一类防具的整体) ZOMBIE_ASH_DAMAGE = "ashDamage" # 灰烬植物攻击,直接伤害本体 diff --git a/source/state/mainmenu.py b/source/state/mainmenu.py index 836d739..a65e11d 100644 --- a/source/state/mainmenu.py +++ b/source/state/mainmenu.py @@ -34,26 +34,30 @@ class Menu(tool.State): self.bg_rect = self.bg_image.get_rect() self.bg_rect.x = 0 self.bg_rect.y = 0 - + def setupOptions(self): # 冒险模式 - self.adventure_frames = [] - frame_names = (f"{c.OPTION_ADVENTURE}_0", f"{c.OPTION_ADVENTURE}_1") frame_rect = (0, 0, 330, 144) - for name in frame_names: - self.adventure_frames.append(tool.get_image_alpha(tool.GFX[name], *frame_rect, c.BLACK, 1)) + # 写成列表生成器方便IDE识别与自动补全 + self.adventure_frames = [tool.get_image_alpha(tool.GFX[f"{c.OPTION_ADVENTURE}_{i}"], *frame_rect) for i in range(2)] self.adventure_image = self.adventure_frames[0] self.adventure_rect = self.adventure_image.get_rect() self.adventure_rect.x = 400 self.adventure_rect.y = 60 self.adventure_highlight_time = 0 - + + # 小游戏 + littleGame_frame_rect = (0, 7, 317, 135) + self.littleGame_frames = [tool.get_image_alpha(tool.GFX[f"{c.LITTLEGAME_BUTTON}_{i}"], *littleGame_frame_rect) for i in range(2)] + self.littleGame_image = self.littleGame_frames[0] + self.littleGame_rect = self.littleGame_image.get_rect() + self.littleGame_rect.x = 397 + self.littleGame_rect.y = 175 + self.littleGame_highlight_time = 0 + # 退出按钮 - self.exit_frames = [] - exit_frame_names = (f"{c.EXIT}_0", f"{c.EXIT}_1") exit_frame_rect = (0, 0, 47, 27) - for name in exit_frame_names: - self.exit_frames.append(tool.get_image_alpha(tool.GFX[name], *exit_frame_rect, c.BLACK, 1.1)) + self.exit_frames = [tool.get_image_alpha(tool.GFX[f"{c.EXIT}_{i}"], *exit_frame_rect, scale=1.1) for i in range(2)] self.exit_image = self.exit_frames[0] self.exit_rect = self.exit_image.get_rect() self.exit_rect.x = 730 @@ -61,29 +65,24 @@ class Menu(tool.State): self.exit_highlight_time = 0 # 选项按钮 - self.option_button_frames = [] - option_button_frame_names = (f"{c.OPTION_BUTTON}_0", f"{c.OPTION_BUTTON}_1") option_button_frame_rect = (0, 0, 81, 31) - for name in option_button_frame_names: - self.option_button_frames.append(tool.get_image_alpha(tool.GFX[name], *option_button_frame_rect, c.BLACK)) + self.option_button_frames = [tool.get_image_alpha(tool.GFX[f"{c.OPTION_BUTTON}_{i}"], *option_button_frame_rect) for i in range(2)] self.option_button_image = self.option_button_frames[0] self.option_button_rect = self.option_button_image.get_rect() self.option_button_rect.x = 560 self.option_button_rect.y = 490 - self.option_button_hightlight_time = 0 - - # 小游戏 - self.littleGame_frames = [] - littleGame_frame_names = (c.LITTLEGAME_BUTTON + "_0", c.LITTLEGAME_BUTTON + "_1") - littleGame_frame_rect = (0, 7, 317, 135) - for name in littleGame_frame_names: - self.littleGame_frames.append(tool.get_image_alpha(tool.GFX[name], *littleGame_frame_rect, c.BLACK, 1)) - self.littleGame_image = self.littleGame_frames[0] - self.littleGame_rect = self.littleGame_image.get_rect() - self.littleGame_rect.x = 397 - self.littleGame_rect.y = 175 - self.littleGame_highlight_time = 0 + self.option_button_highlight_time = 0 + # 帮助菜单 + help_frame_rect = (0, 0, 48, 22) + self.help_frames = [tool.get_image_alpha(tool.GFX[f"{c.HELP}_{i}"], *help_frame_rect) for i in range(2)] + self.help_image = self.help_frames[0] + self.help_rect = self.help_image.get_rect() + self.help_rect.x = 653 + self.help_rect.y = 520 + self.help_hilight_time = 0 + + # 计时器与点击信号记录器 self.adventure_start = 0 self.adventure_timer = 0 self.adventure_clicked = False @@ -93,21 +92,25 @@ class Menu(tool.State): # 高亮冒险模式按钮 if self.inArea(self.adventure_rect, x, y): self.adventure_highlight_time = self.current_time + # 高亮小游戏按钮 + elif self.inArea(self.littleGame_rect, x, y): + self.littleGame_highlight_time = self.current_time # 高亮退出按钮 elif self.inArea(self.exit_rect, x, y): self.exit_highlight_time = self.current_time # 高亮选项按钮 elif self.inArea(self.option_button_rect, x, y): - self.option_button_hightlight_time = self.current_time - # 高亮小游戏按钮 - elif self.inArea(self.littleGame_rect, x, y): - self.littleGame_highlight_time = self.current_time + self.option_button_highlight_time = self.current_time + # 高亮帮助按钮 + elif self.inArea(self.help_rect, x, y): + self.help_hilight_time = self.current_time # 处理按钮高亮情况 self.adventure_image = self.chooseHilightImage(self.adventure_highlight_time, self.adventure_frames) self.exit_image = self.chooseHilightImage(self.exit_highlight_time, self.exit_frames) - self.option_button_image = self.chooseHilightImage(self.option_button_hightlight_time, self.option_button_frames) + self.option_button_image = self.chooseHilightImage(self.option_button_highlight_time, self.option_button_frames) self.littleGame_image = self.chooseHilightImage(self.littleGame_highlight_time, self.littleGame_frames) + self.help_image = self.chooseHilightImage(self.help_hilight_time, self.help_frames) def chooseHilightImage(self, hilightTime, frames): if (self.current_time - hilightTime) < 80: @@ -116,31 +119,30 @@ class Menu(tool.State): index = 0 return frames[index] - def checkAdventureClick(self, mouse_pos): - x, y = mouse_pos - if self.inArea(self.adventure_rect, x, y): - self.adventure_clicked = True - self.adventure_timer = self.adventure_start = self.current_time - self.persist[c.GAME_MODE] = c.MODE_ADVENTURE - # 播放进入音效 - c.SOUND_EVILLAUGH.play() - c.SOUND_LOSE.play() - - # 点击到按钮,修改转态的done属性 - def checkExitClick(self, mouse_pos): - x, y = mouse_pos - if self.inArea(self.exit_rect, x, y): - self.done = True - self.next = c.EXIT + def respondAdventureClick(self): + self.adventure_clicked = True + self.adventure_timer = self.adventure_start = self.current_time + self.persist[c.GAME_MODE] = c.MODE_ADVENTURE + # 播放进入音效 + c.SOUND_EVILLAUGH.play() + c.SOUND_LOSE.play() - # 检查有没有按到小游戏 - def checkLittleGameClick(self, mouse_pos): - x, y = mouse_pos - if self.inArea(self.littleGame_rect, x, y): - self.done = True - self.persist[c.GAME_MODE] = c.MODE_LITTLEGAME - # 播放点击音效 - c.SOUND_BUTTON_CLICK.play() + # 按到小游戏 + def respondLittleGameClick(self): + self.done = True + self.persist[c.GAME_MODE] = c.MODE_LITTLEGAME + # 播放点击音效 + c.SOUND_BUTTON_CLICK.play() + + # 点击到退出按钮,修改转态的done属性 + def respondExitClick(self): + self.done = True + self.next = c.EXIT + + # 帮助按钮点击 + def respondHelpClick(self): + self.done = True + self.next = c.HELP_SCREEN def setupOptionMenu(self): # 选项菜单框 @@ -220,12 +222,10 @@ class Menu(tool.State): infoImg_rect.y = y surface.blit(infoImg, infoImg_rect) - def checkOptionButtonClick(self, mouse_pos): - x, y = mouse_pos - if self.inArea(self.option_button_rect, x, y): - self.option_button_clicked = True - # 播放点击音效 - c.SOUND_BUTTON_CLICK.play() + def respondOptionButtonClick(self): + self.option_button_clicked = True + # 播放点击音效 + c.SOUND_BUTTON_CLICK.play() def showCurrentVolumeImage(self, surface): # 由于音量可变,因此这一内容不能在一开始就结束加载,而应当不断刷新不断显示 @@ -241,9 +241,10 @@ class Menu(tool.State): surface.blit(self.bg_image, self.bg_rect) surface.blit(self.adventure_image, self.adventure_rect) + surface.blit(self.littleGame_image, self.littleGame_rect) surface.blit(self.exit_image, self.exit_rect) surface.blit(self.option_button_image, self.option_button_rect) - surface.blit(self.littleGame_image, self.littleGame_rect) + surface.blit(self.help_image, self.help_rect) if self.game_info[c.LEVEL_COMPLETIONS] or self.game_info[c.LITTLEGAME_COMPLETIONS]: surface.blit(self.sunflower_trophy, self.sunflower_trophy_rect) @@ -294,7 +295,13 @@ class Menu(tool.State): if (self.game_info[c.LEVEL_COMPLETIONS] or self.game_info[c.LITTLEGAME_COMPLETIONS]): self.checkSunflowerTrophyInfo(surface, x, y) if mouse_pos: - self.checkExitClick(mouse_pos) - self.checkOptionButtonClick(mouse_pos) - self.checkLittleGameClick(mouse_pos) - self.checkAdventureClick(mouse_pos) + if self.inArea(self.adventure_rect, *mouse_pos): + self.respondAdventureClick() + elif self.inArea(self.littleGame_rect, *mouse_pos): + self.respondLittleGameClick() + elif self.inArea(self.option_button_rect, *mouse_pos): + self.respondOptionButtonClick() + elif self.inArea(self.exit_rect, *mouse_pos): + self.respondExitClick() + elif self.inArea(self.help_rect, *mouse_pos): + self.respondHelpClick() diff --git a/source/state/screen.py b/source/state/screen.py index e02824c..657c06d 100644 --- a/source/state/screen.py +++ b/source/state/screen.py @@ -127,32 +127,7 @@ class AwardScreen(tool.State): main_menu_text_rect.x = 29 self.main_menu_button_image.blit(main_menu_text, main_menu_text_rect) self.image.blit(self.main_menu_button_image, self.main_menu_button_image_rect) - else: - ## 继续按钮 - self.next_button_image = tool.get_image_alpha(tool.GFX[c.UNIVERSAL_BUTTON], *frame_rect) - self.next_button_image_rect = self.next_button_image.get_rect() - self.next_button_image_rect.x = 70 - ### 继续按钮上的文字 - font = pg.font.Font(c.FONT_PATH, 18) - next_text = font.render("继续", True, c.NAVYBLUE) - next_text_rect = next_text.get_rect() - next_text_rect.x = 37 - ## 主菜单按钮 - self.main_menu_button_image = tool.get_image_alpha(tool.GFX[c.UNIVERSAL_BUTTON], *frame_rect) - self.main_menu_button_image_rect = self.main_menu_button_image.get_rect() - self.main_menu_button_image_rect.x = 620 - self.next_button_image_rect.y = self.main_menu_button_image_rect.y = 540 - ### 主菜单按钮上的文字 - main_menu_text = font.render("主菜单", True, c.NAVYBLUE) - main_menu_text_rect = main_menu_text.get_rect() - main_menu_text_rect.x = 29 - self.next_button_image.blit(next_text, next_text_rect) - self.main_menu_button_image.blit(main_menu_text, main_menu_text_rect) - self.image.blit(self.next_button_image, self.next_button_image_rect) - self.image.blit(self.main_menu_button_image, self.main_menu_button_image_rect) - # 显示向日葵奖杯的情况 - if self.show_only_one_option: # 绘制向日葵奖杯 if (self.game_info[c.LEVEL_COMPLETIONS] and self.game_info[c.LITTLEGAME_COMPLETIONS]): frame_rect = (157, 0, 157, 269) @@ -186,7 +161,29 @@ class AwardScreen(tool.State): intro_content_rect.x = 290 intro_content_rect.y = 370 self.image.blit(intro_content_img, intro_content_rect) - + else: + ## 继续按钮 + self.next_button_image = tool.get_image_alpha(tool.GFX[c.UNIVERSAL_BUTTON], *frame_rect) + self.next_button_image_rect = self.next_button_image.get_rect() + self.next_button_image_rect.x = 70 + ### 继续按钮上的文字 + font = pg.font.Font(c.FONT_PATH, 18) + next_text = font.render("继续", True, c.NAVYBLUE) + next_text_rect = next_text.get_rect() + next_text_rect.x = 37 + ## 主菜单按钮 + self.main_menu_button_image = tool.get_image_alpha(tool.GFX[c.UNIVERSAL_BUTTON], *frame_rect) + self.main_menu_button_image_rect = self.main_menu_button_image.get_rect() + self.main_menu_button_image_rect.x = 620 + self.next_button_image_rect.y = self.main_menu_button_image_rect.y = 540 + ### 主菜单按钮上的文字 + main_menu_text = font.render("主菜单", True, c.NAVYBLUE) + main_menu_text_rect = main_menu_text.get_rect() + main_menu_text_rect.x = 29 + self.next_button_image.blit(next_text, next_text_rect) + self.main_menu_button_image.blit(main_menu_text, main_menu_text_rect) + self.image.blit(self.next_button_image, self.next_button_image_rect) + self.image.blit(self.main_menu_button_image, self.main_menu_button_image_rect) def startup(self, current_time, persist): self.start_time = current_time @@ -214,3 +211,44 @@ class AwardScreen(tool.State): if self.inArea(self.next_button_image_rect, *mouse_pos): self.next = c.LEVEL self.done = True + +class HelpScreen(tool.State): + def __init__(self): + tool.State.__init__(self) + + def startup(self, current_time, persist): + self.start_time = current_time + self.persist = persist + self.game_info = persist + self.setupImage() + pg.mixer.music.stop() + + def setupImage(self): + # 主体 + frame_rect = (-100, -50, 800, 600) + self.image = tool.get_image(tool.GFX[c.HELP_SCREEN_IMAGE], *frame_rect, colorkey=None) + self.rect = self.image.get_rect() + self.rect.x = 0 + self.rect.y = 0 + + # 主菜单按钮 + frame_rect = (0, 0, 111, 26) + self.main_menu_button_image = tool.get_image_alpha(tool.GFX[c.UNIVERSAL_BUTTON], *frame_rect) + self.main_menu_button_image_rect = self.main_menu_button_image.get_rect() + self.main_menu_button_image_rect.x = 343 + self.main_menu_button_image_rect.y = 500 + ### 主菜单按钮上的文字 + font = pg.font.Font(c.FONT_PATH, 18) + main_menu_text = font.render("主菜单", True, c.NAVYBLUE) + main_menu_text_rect = main_menu_text.get_rect() + main_menu_text_rect.x = 29 + self.main_menu_button_image.blit(main_menu_text, main_menu_text_rect) + self.image.blit(self.main_menu_button_image, self.main_menu_button_image_rect) + + def update(self, surface, current_time, mouse_pos, mouse_click): + surface.blit(self.image, self.rect) + if mouse_pos: + # 检查主菜单点击 + if self.inArea(self.main_menu_button_image_rect, *mouse_pos): + self.next = c.MAIN_MENU + self.done = True