diff options
| author | Moisis <moisis.george@yahoo.com> | 2023-05-19 23:41:23 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-19 23:41:23 +0300 |
| commit | 271af3b2b85ac05aa8061cef0f35e7540f90b778 (patch) | |
| tree | a0475e1d88be01716e76f2e75c495a4284290bb9 /src/player.py | |
| parent | 8eeb31dba61e8c9b29704c5988f95dcba4338fca (diff) | |
| parent | 6a351ed2d6a554ed6d338abba234527705d1040f (diff) | |
| download | Macpan-271af3b2b85ac05aa8061cef0f35e7540f90b778.tar.xz Macpan-271af3b2b85ac05aa8061cef0f35e7540f90b778.zip | |
Final Touches
Diffstat (limited to 'src/player.py')
| -rw-r--r-- | src/player.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/player.py b/src/player.py index 92c4a84..1e880a1 100644 --- a/src/player.py +++ b/src/player.py @@ -6,7 +6,9 @@ import pygame class Player(): - def __init__(self, sprite_sheet): + + def __init__(self, sprite_sheet, settings): + self.settings = settings self.x = 30 * 17 - 15 self.y = 30 * 25 - 15 self.sprite_sheet = sprite_sheet @@ -18,6 +20,7 @@ class Player(): # checks if the current position of pacman is either a dot, big dot or free def is_valid(self, game_state, x, y): + if x >= 0 and x < 30: is_dot = game_state.map.maze[y][x] == Map.D is_big_dot = game_state.map.maze[y][x] == Map.BD @@ -27,6 +30,7 @@ class Player(): game_state.food += 1 if is_dot: game_state.score += 10 + if is_big_dot: self.powerup = True self.timer = Timer(5 * 1000) @@ -53,11 +57,15 @@ class Player(): return True def draw(self, screen, counter): + voice = pygame.mixer.Channel(2) + Soundpowerup = pygame.mixer.Sound('../assets/sfx/power_pellet.wav') if self.timer is not None: elapsed_time = pygame.time.get_ticks() - self.timer.start if elapsed_time > self.timer.duration: self.powerup = False + + radius = 30 // 2 pos = (self.x - radius, self.y - radius) sprite_sheet = [2, 0, 3, 1] @@ -67,7 +75,12 @@ class Player(): image = pygame.transform.scale( self.sprite[sprite_sheet[self.direction.value]], (40, 40)) screen.blit(image, pos) + if self.settings.sound: + if not (voice.get_busy()): + voice.play(Soundpowerup) + else: + voice.stop() self.sprite = get_sprites(self.sprite_sheet) image = pygame.transform.scale(self.sprite[counter // 5], (35, 35)) if self.direction == DIRECTION.UP: |
