diff --git a/source/component/plant.py b/source/component/plant.py index e05adef..884518d 100755 --- a/source/component/plant.py +++ b/source/component/plant.py @@ -647,8 +647,11 @@ class Chomper(Plant): def attacking(self): if self.frame_index == (self.frame_num - 3): - # 播放吞的音效 - c.SOUND_BIGCHOMP.play() + # 播放吞的音效 由于一帧在这个循环中执行了若干次,可能被设置播放若干次导致声音重叠,所以用if保护 + if not self.should_diggest: + # 在尚未检测到需要消化时播放音效 + c.SOUND_BIGCHOMP.play() + # 对活着的僵尸才需要吞下去消化 if self.attack_zombie.alive(): self.should_diggest = True self.attack_zombie.kill() diff --git a/source/state/level.py b/source/state/level.py index 71b9f8e..c647e3a 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -366,7 +366,7 @@ class Level(tool.State): def choose(self, mouse_pos, mouse_click): # 如果暂停 if self.show_game_menu: - self.pauseAndCheckLittleMenuOptions(mouse_pos, mouse_click) + self.pauseAndCheckMenuOptions(mouse_pos, mouse_click) return elif mouse_pos and mouse_click[0]: @@ -544,7 +544,7 @@ class Level(tool.State): # 音量+、-应当处于同一高度 self.sound_volume_minus_button_rect.y = self.sound_volume_plus_button_rect.y = 250 - def pauseAndCheckLittleMenuOptions(self, mouse_pos, mouse_click): + def pauseAndCheckMenuOptions(self, mouse_pos, mouse_click): # 设置暂停状态 self.pause = True # 暂停播放音乐 @@ -660,7 +660,7 @@ class Level(tool.State): # 如果暂停 if self.show_game_menu: - self.pauseAndCheckLittleMenuOptions(mouse_pos, mouse_click) + self.pauseAndCheckMenuOptions(mouse_pos, mouse_click) return if self.map_data[c.SPAWN_ZOMBIES] == c.SPAWN_ZOMBIES_LIST: