import sys from itertools import product import pygame from pygame.locals import * from maze import Maze pygame.init() vec = pygame.math.Vector2 # 2 for two dimensional HEIGHT = 450 WIDTH = 400 FPS = 60 FramePerSec = pygame.time.Clock() displaysurface = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Game") SCREEN_BUFFER = 10 MAZE_SIZE = 15 GRID_SIZE = 25 class Player(pygame.sprite.Sprite): def __init__(self): super().__init__() self.surf = pygame.Surface((30, 30)) self.surf.fill((0, 255, 0)) self.rect = self.surf.get_rect(center=(10, 420)) class MazeWall(pygame.sprite.Sprite): def __init__(self, wall): wall_width = 2 super().__init__() start_cell, end_cell = wall x,y = start_cell vertical = start_cell[1] == end_cell[1] if vertical: self.surf = pygame.Surface((wall_width, GRID_SIZE)) else: self.surf = pygame.Surface((GRID_SIZE, wall_width)) self.surf.fill((0, 0, 255)) if vertical: self.rect = self.surf.get_rect(midtop=((x+1) * GRID_SIZE + SCREEN_BUFFER, y * GRID_SIZE + SCREEN_BUFFER)) else: self.rect = self.surf.get_rect(midleft=(x * GRID_SIZE + SCREEN_BUFFER, (y + 1) * GRID_SIZE + SCREEN_BUFFER)) all_sprites = pygame.sprite.Group() maze_sprites = pygame.sprite.Group() maze = Maze(MAZE_SIZE, MAZE_SIZE) for wall in maze.walls: wall_sprite = MazeWall(wall) maze_sprites.add(wall_sprite) while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() # wipe buffer displaysurface.fill((0, 0, 0)) # draw border pygame.draw.rect(displaysurface, (255, 0, 0), pygame.Rect((SCREEN_BUFFER, SCREEN_BUFFER, MAZE_SIZE * GRID_SIZE, MAZE_SIZE * GRID_SIZE)), 2) pygame.draw.circle(displaysurface, (0, 255, 0), (25, 25), GRID_SIZE / 3) # for entity in all_sprites: # displaysurface.blit(entity.surf, entity.rect) for entity in maze_sprites: displaysurface.blit(entity.surf, entity.rect) pygame.display.update() FramePerSec.tick(FPS)