From 3d7e3d1eba26cc57b31337b0708fce3747f8a988 Mon Sep 17 00:00:00 2001 From: Moisis Date: Wed, 17 May 2023 14:04:38 +0300 Subject: Improved GUI Settings added (Debug , Sound) SoundSystem added (Become sometimes laggy) --- src/game.py | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) (limited to 'src/game.py') diff --git a/src/game.py b/src/game.py index a7efb67..928b665 100644 --- a/src/game.py +++ b/src/game.py @@ -1,3 +1,6 @@ +import os +import sys + from direction import DIRECTION from game_state import GameState from mode import MODE @@ -7,8 +10,9 @@ import pygame class Game(): - def __init__(self): - self.settings = settings + def __init__(self, lolsettings): + self.settings = lolsettings + def show_gameover_screen(self, screen, game_state, sprites): font = pygame.font.SysFont(None, 64) @@ -21,9 +25,9 @@ class Game(): # Blit the "Game Over" text onto the screen text_rect_1 = game_over_text_1.get_rect( - center=(WIDTH/2, HEIGHT/2 - 75)) + center=(WIDTH / 2, HEIGHT / 2 - 75)) text_rect_2 = game_over_text_2.get_rect( - center=(WIDTH/2, HEIGHT/2)) + center=(WIDTH / 2, HEIGHT / 2)) screen.blit(game_over_text_1, text_rect_1) screen.blit(game_over_text_2, text_rect_2) @@ -44,7 +48,9 @@ class Game(): elif event.type == pygame.KEYDOWN and event.key == pygame.K_q: game_state.game_over = True quit_game = True - break + pygame.quit() + os.system("python MacPan.py 1") + exit() elif event.type == pygame.QUIT: game_state.game_over = True quit_game = True # Set the flag to True to break out of both loops @@ -59,16 +65,16 @@ class Game(): wining_text_2 = font.render( "Press R to play again or Q to quit", True, (255, 255, 255)) - text_rect_1 = wining_text_1.get_rect( - center=(WIDTH/2, HEIGHT/2 - 75)) - text_rect_2 = wining_text_2.get_rect( - center=(WIDTH/2, HEIGHT/2)) + # text_rect_1 = wining_text_1.get_rect( + # center=(WIDTH / 2, HEIGHT / 2 - 75)) + # text_rect_2 = wining_text_2.get_rect( + # center=(WIDTH / 2, HEIGHT / 2)) # Blit the "Game Over" text onto the screen text_rect_1 = wining_text_1.get_rect( - center=(WIDTH/2, HEIGHT/2)) + center=(WIDTH / 2, HEIGHT / 2)) text_rect_2 = wining_text_2.get_rect( - center=(WIDTH/2, HEIGHT/2 + 100)) + center=(WIDTH / 2, HEIGHT / 2 + 100)) screen.blit(wining_text_1, text_rect_1) screen.blit(wining_text_2, text_rect_2) @@ -95,7 +101,7 @@ class Game(): break def reset_game(self, game_state, sprites): - game_state.reset(sprites) + game_state.reset(sprites,self.settings) def run(self): # Initialize Pygame @@ -122,7 +128,7 @@ class Game(): timer_event = pygame.USEREVENT + 1 pygame.time.set_timer(timer_event, 1000 * 10, 1) - game_state = GameState(sprites) + game_state = GameState(sprites, self.settings) # Set the pacman velocity dx = 0 @@ -132,11 +138,12 @@ class Game(): counter = 0 clock = pygame.time.Clock() - + pygame.mixer.set_num_channels(5) pygame.mixer.music.load('../assets/sfx/game_start.wav') siren_sound = pygame.mixer.Sound('../assets/sfx/siren_1.wav') - if settings.sound: + + if self.settings.sound: pygame.mixer.music.play() siren_sound.play(-1) @@ -246,11 +253,14 @@ class Game(): if game_state.food == 246: self.show_wining_screen(screen, game_state, sprites) - if not game_state.is_pacman_alive: + siren_sound.stop() + pygame.mixer.music.load('../assets/sfx/death_1.wav') + pygame.mixer.music.play() self.show_gameover_screen( screen, game_state, sprites) game_state.is_pacman_alive = True + else: # Update the screen pygame.display.flip() -- cgit v1.2.3