diff --git a/src/env.py b/src/env.py index 47f8532..6832b45 100644 --- a/src/env.py +++ b/src/env.py @@ -55,7 +55,7 @@ MUSIC_PATH = path.join(path.dirname(__file__), "..", "asset", "music") BG_PATH = path.join(ASSET_IMAGE_DIR, "background.png") SQUID_PATH = path.join(ASSET_IMAGE_DIR, "squid.png") -SQUID2_PATH = path.join(ASSET_IMAGE_DIR, "squid2.png") +SQUID2_PATH = path.join(ASSET_IMAGE_DIR, "squid2_02.png") IMG_ID_FOOD01_L = "food_01_L" IMG_ID_FOOD02_L = "food_02_L" diff --git a/src/game.py b/src/game.py index 5b6c074..213eaf4 100644 --- a/src/game.py +++ b/src/game.py @@ -156,15 +156,15 @@ class SwimmingSquid(PaiaGame): hit = pygame.sprite.collide_rect(self.squid1, self.squid2) if hit: if self.squid1.lv > self.squid2.lv: - self.squid1.collision_between_squids(COLLISION_SCORE["WIN"], self.sound_controller) - self.squid2.collision_between_squids(COLLISION_SCORE["LOSE"], self.sound_controller) + self.squid1.collision_between_squids(COLLISION_SCORE["WIN"], self.frame_count, self.sound_controller) + self.squid2.collision_between_squids(COLLISION_SCORE["LOSE"], self.frame_count, self.sound_controller) elif self.squid1.lv < self.squid2.lv: - self.squid1.collision_between_squids(COLLISION_SCORE["LOSE"], self.sound_controller) - self.squid2.collision_between_squids(COLLISION_SCORE["WIN"], self.sound_controller) + self.squid1.collision_between_squids(COLLISION_SCORE["LOSE"], self.frame_count, self.sound_controller) + self.squid2.collision_between_squids(COLLISION_SCORE["WIN"], self.frame_count, self.sound_controller) else: # draw - self.squid1.collision_between_squids(COLLISION_SCORE["DRAW"], self.sound_controller) - self.squid2.collision_between_squids(COLLISION_SCORE["DRAW"], self.sound_controller) + self.squid1.collision_between_squids(COLLISION_SCORE["DRAW"], self.frame_count, self.sound_controller) + self.squid2.collision_between_squids(COLLISION_SCORE["DRAW"], self.frame_count, self.sound_controller) def get_data_from_game_to_player(self): """ diff --git a/src/game_object.py b/src/game_object.py index d82e1c6..97e7a14 100644 --- a/src/game_object.py +++ b/src/game_object.py @@ -42,6 +42,7 @@ class Squid(pygame.sprite.Sprite): self._vel = LEVEL_PROPERTIES[1]['vel'] self._lv = 1 self.angle = 0 + self._last_collision = 0 def update(self, motion): # for motion in motions: @@ -90,8 +91,11 @@ class Squid(pygame.sprite.Sprite): self._vel = LEVEL_PROPERTIES[new_lv]['vel'] self._lv = new_lv - def collision_between_squids(self, collision_score, sound_controller: SoundController): - self._score += collision_score + def collision_between_squids(self, collision_score, frame, sound_controller: SoundController): + if frame - self._last_collision > 30: + self._score += collision_score + self._last_collision = frame + sound_controller.play_collision() new_lv = get_current_level(self._score) diff --git a/src/sound_controller.py b/src/sound_controller.py index e86d85e..053349f 100644 --- a/src/sound_controller.py +++ b/src/sound_controller.py @@ -30,6 +30,7 @@ class SoundController(): self._fail = pygame.mixer.Sound(path.join(SOUND_PATH, "fail.mp3")) self._lv_up = pygame.mixer.Sound(path.join(SOUND_PATH, "lv_up.mp3")) self._lv_down = pygame.mixer.Sound(path.join(SOUND_PATH, "lv_down.mp3")) + self._collision = pygame.mixer.Sound(path.join(SOUND_PATH, "collision.mp3")) except Exception as e : self._is_sound_on = False traceback.print_exc() @@ -58,4 +59,8 @@ class SoundController(): @sound_enabled def play_lv_down(self): - self._lv_down.play() \ No newline at end of file + self._lv_down.play() + + @sound_enabled + def play_collision(self): + self._collision.play()