diff --git a/resources/music/battle.ogg b/resources/music/battle.ogg new file mode 100644 index 0000000..206d971 Binary files /dev/null and b/resources/music/battle.ogg differ diff --git a/resources/music/bowling.ogg b/resources/music/bowling.ogg new file mode 100644 index 0000000..3061535 Binary files /dev/null and b/resources/music/bowling.ogg differ diff --git a/resources/music/chooseYourSeeds.ogg b/resources/music/chooseYourSeeds.ogg new file mode 100644 index 0000000..aac31c3 Binary files /dev/null and b/resources/music/chooseYourSeeds.ogg differ diff --git a/resources/music/dayLevel.ogg b/resources/music/dayLevel.ogg new file mode 100644 index 0000000..0c427aa Binary files /dev/null and b/resources/music/dayLevel.ogg differ diff --git a/resources/music/intro.ogg b/resources/music/intro.ogg new file mode 100644 index 0000000..ee0e7cb Binary files /dev/null and b/resources/music/intro.ogg differ diff --git a/resources/music/nightLevel.ogg b/resources/music/nightLevel.ogg new file mode 100644 index 0000000..79d93c7 Binary files /dev/null and b/resources/music/nightLevel.ogg differ diff --git a/source/state/level.py b/source/state/level.py index 6015d3b..8c67231 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -26,10 +26,13 @@ class Level(tool.State): self.initState() def loadMap(self): + modeList = ['adventure', 'littleGame'] if c.LITTLEGAME_BUTTON in self.game_info: map_file = 'littleGame_' + str(self.game_info[c.LEVEL_NUM]) + '.json' + mode = 'adventure' else: map_file = 'level_' + str(self.game_info[c.LEVEL_NUM]) + '.json' + mode = 'littleGame' file_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))),'resources' , 'data', 'map', map_file) # 最后一关之后应该结束了 try: @@ -42,12 +45,31 @@ class Level(tool.State): self.map_data = json.load(f) self.done = True self.next = c.MAIN_MENU + pg.mixer.music.stop() + pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "music", "intro.ogg")) + pg.mixer.music.play(-1, 0) return if self.map_data[c.SHOVEL] == 0: self.hasShovel = False else: self.hasShovel = True + # 同时播放音乐 + global bgm + if mode == modeList[1]: # 冒险模式 + if self.game_info[c.LEVEL_NUM] in {0, 1, 2}: # 白天关卡 + bgm = 'dayLevel.ogg' + elif self.game_info[c.LEVEL_NUM] in {3}: # 夜晚关卡 + bgm = 'nightLevel.ogg' + elif mode == modeList[0]: # 小游戏模式 + if self.game_info[c.LEVEL_NUM] in {1}: # 传送带大战 + bgm = 'battle.ogg' + elif self.game_info[c.LEVEL_NUM] in {2}: # 坚果保龄球 + bgm = 'bowling.ogg' + pg.mixer.music.stop() + pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "music", bgm)) + pg.mixer.music.play(-1, 0) + def setupBackground(self): img_index = self.map_data[c.BACKGROUND_TYPE] self.background_type = img_index @@ -256,17 +278,25 @@ class Level(tool.State): def play(self, mouse_pos, mouse_click): # 如果暂停 if self.showLittleMenu: + pg.mixer.music.pause() # 暂停播放音乐 if mouse_click[0]: if self.checkReturnClick(mouse_pos): # 暂停 显示菜单 self.showLittleMenu = False + pg.mixer.music.unpause() elif self.checkRestartClick(mouse_pos): self.done = True self.next = c.LEVEL + pg.mixer.music.stop() + pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "music", bgm)) + pg.mixer.music.play(-1, 0) elif self.checkMainMenuClick(mouse_pos): self.done = True self.next = c.MAIN_MENU self.persist = {c.CURRENT_TIME:0.0, c.LEVEL_NUM:c.START_LEVEL_NUM} + pg.mixer.music.stop() + pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))) ,"resources", "music", "intro.ogg")) + pg.mixer.music.play(-1, 0) return if self.zombie_start_time == 0: diff --git a/source/tool.py b/source/tool.py index 8724c16..99a9869 100755 --- a/source/tool.py +++ b/source/tool.py @@ -205,3 +205,8 @@ SCREEN = pg.display.set_mode(c.SCREEN_SIZE) # 设置初始屏幕 GFX = load_all_gfx(os.path.join(os.path.dirname(os.path.dirname(__file__)) ,os.path.join("resources","graphics"))) ZOMBIE_RECT = loadZombieImageRect() PLANT_RECT = loadPlantImageRect() + +# 播放音乐 +pg.mixer.init() +pg.mixer.music.load(os.path.join(os.path.dirname(os.path.dirname(__file__)) ,"resources", "music", "intro.ogg")) +pg.mixer.music.play(-1, 0) \ No newline at end of file