From 241e41892a10d3913c63935a8f9e14306e8a73cd Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Mon, 8 May 2023 21:40:21 +0300 Subject: Made a Singeltion class GameState containg the current state of the game --- src/game_state.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/game_state.py (limited to 'src/game_state.py') diff --git a/src/game_state.py b/src/game_state.py new file mode 100644 index 0000000..f722873 --- /dev/null +++ b/src/game_state.py @@ -0,0 +1,46 @@ +from blinky import Blinky +from clyde import Clyde +from inky import Inky +from pinky import Pinky +from player import Player +from settings import settings +import map as Map +import pygame + +WIDTH = settings.width +HEIGHT = settings.height +maze = Map.Map() +TILE_WIDTH = WIDTH // len(maze.maze[0]) +TILE_HEIGHT = HEIGHT // len(maze.maze) + + +class GameState(): + def __init__(self, sprites): + self.pacman = Player(sprites[0]) + self.blinky = Blinky(sprites[1], 12 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.pinky = Pinky(sprites[2], 11 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.inky = Inky(sprites[3], 13 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.clyde = Clyde(sprites[4], 14 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.map = Map.Map() + self.game_over = False + self.is_pacman_alive = True + + def reset(self, sprites): + self.pacman = Player(sprites[0]) + self.blinky = Blinky(sprites[1], 12 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.pinky = Pinky(sprites[2], 11 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.inky = Inky(sprites[3], 13 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.clyde = Clyde(sprites[4], 14 * TILE_WIDTH + + 15, 12 * TILE_HEIGHT + 15) + self.map = Map.Map() + self.game_over = False + self.is_pacman_alive = True + timer_event = pygame.USEREVENT + 1 + pygame.time.set_timer(timer_event, 1000 * 10, 1) -- cgit v1.2.3 From aaf0194f9b5d93bd6612bc0b419c4b8f89b4aa21 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Mon, 8 May 2023 23:02:03 +0300 Subject: Added a simple Wining screen when the user collects all the food --- src/game_state.py | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/game_state.py') diff --git a/src/game_state.py b/src/game_state.py index f722873..5ed98c0 100644 --- a/src/game_state.py +++ b/src/game_state.py @@ -26,7 +26,9 @@ class GameState(): self.clyde = Clyde(sprites[4], 14 * TILE_WIDTH + 15, 12 * TILE_HEIGHT + 15) self.map = Map.Map() + self.food = 0 self.game_over = False + self.score = 0 self.is_pacman_alive = True def reset(self, sprites): @@ -40,7 +42,9 @@ class GameState(): self.clyde = Clyde(sprites[4], 14 * TILE_WIDTH + 15, 12 * TILE_HEIGHT + 15) self.map = Map.Map() + self.food = 0 self.game_over = False self.is_pacman_alive = True + self.score = 0 timer_event = pygame.USEREVENT + 1 pygame.time.set_timer(timer_event, 1000 * 10, 1) -- cgit v1.2.3