From 67c2b1e811c642d28d86489d81ecd464ce1225de Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Mon, 20 Mar 2023 21:24:58 +0200 Subject: Added a functionality to consturct a map from a 2d array --- src/Game.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/Game.py') diff --git a/src/Game.py b/src/Game.py index aedfa0c..bef2b35 100644 --- a/src/Game.py +++ b/src/Game.py @@ -1,6 +1,7 @@ import Player from Direction import DIRECTION import settings as Settings +import map as Map import pygame class Game(): @@ -39,6 +40,7 @@ class Game(): def check_collision(dx, dy): return player.y + sprite_height + dy > Settings.settings.height or player.y + dy < 0 or player.x + sprite_width + dx > Settings.settings.width or player.x + dx < 0 + map = Map.Map() # Main game loop running = True @@ -77,7 +79,6 @@ class Game(): dy = 0 # Necssarry to move only horizontal or vertical - # print(player.direction) # Update the circle's position and checking for collisions if not check_collision(dx, dy): player.x += dx @@ -85,6 +86,7 @@ class Game(): screen.fill((0, 0, 0)) # Clear the screen + map.draw_map(screen) player.draw(screen, counter) # Update the screen -- cgit v1.2.3 From c2a57ee13380b17126df50b8dbafa36fc98d7bf0 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Wed, 22 Mar 2023 01:12:33 +0200 Subject: Added the map for pacman using a 2D array describing the map --- src/Game.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'src/Game.py') diff --git a/src/Game.py b/src/Game.py index bef2b35..9d93786 100644 --- a/src/Game.py +++ b/src/Game.py @@ -29,18 +29,28 @@ class Game(): clock = pygame.time.Clock() - # Sprite sheet for pacman - sprite_sheet = pygame.image.load('../assets/pacman_left_sprite.png').convert_alpha(); - sprite_width, sprite_height = 32, 32 + map = Map.Map() + + grid_x = Settings.settings.width // len(map.maze[0]) + grid_y = (Settings.settings.height - 50) // len(map.maze) + # Checks collision with walls def check_collision(dx, dy): - return player.y + sprite_height + dy > Settings.settings.height or player.y + dy < 0 or player.x + sprite_width + dx > Settings.settings.width or player.x + dx < 0 + print(grid_x, grid_y) + x = int((player.x + dx) / grid_x) + y = int((player.y + dy) / grid_y) + print(x, y) + print(map.maze[x][y]) + is_dot = map.maze[x][y] == Map.D + is_big_dot = map.maze[x][y] == Map.BD + is_free = map.maze[x][y] == 0 + return not (is_dot or is_free or is_big_dot) + - map = Map.Map() # Main game loop running = True -- cgit v1.2.3