diff options
Diffstat (limited to 'src/Game.py')
| -rw-r--r-- | src/Game.py | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/Game.py b/src/Game.py new file mode 100644 index 0000000..aedfa0c --- /dev/null +++ b/src/Game.py @@ -0,0 +1,95 @@ +import Player +from Direction import DIRECTION +import settings as Settings +import pygame + +class Game(): + def __init__(self): + self.settings = Settings.settings + + def init(self): + # Initialize Pygame + pygame.init() + + # Set the dimensions of the window + screen = pygame.display.set_mode((Settings.settings.width, Settings.settings.height)) + + # Sprite sheet for pacman + sprite_sheet = pygame.image.load('../assets/pacman_left_sprite.png').convert_alpha(); + + player = Player.Player(sprite_sheet) + + # Set the circle's velocity + dx = 0 + dy = 0 + + # counter used to cycle through pacman sprite animation + counter = 0 + + 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 + + + + # 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 + + # Main game loop + running = True + + + while running: + # setting game fps + clock.tick(Settings.settings.fps) + + # counter logic for cycling between pacman different sprites + if counter < 19: + counter += 1 + else: + counter = 0 + + # Handling events + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + elif event.type == pygame.KEYDOWN: + # Move the circle based on the pressed key + if event.key == pygame.K_w: + player.direction = DIRECTION.UP + dy = -player.speed + dx = 0 # Necssarry to move only horizontal or vertical + elif event.key == pygame.K_s: + player.direction = DIRECTION.DOWN + dy = player.speed + dx = 0 # Necssarry to move only horizontal or vertical + elif event.key == pygame.K_a: + player.direction = DIRECTION.LEFT + dx = -player.speed + dy = 0 # Necssarry to move only horizontal or vertical + elif event.key == pygame.K_d: + player.direction = DIRECTION.RIGHT + dx = player.speed + 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 + player.y += dy + + screen.fill((0, 0, 0)) # Clear the screen + + player.draw(screen, counter) + + # Update the screen + pygame.display.flip() + + + # Quit Pygame + pygame.quit() |
