import pygame as pg TITLE = "Grid" TILES_HORIZONTAL = 10 TILES_VERTICAL = 10 TILE_SIZE = 80 WINDOW_WIDTH = 800 WINDOW_HEIGHT = 800 class Player: def __init__(self, surface): self.surface = surface self.pos = (40, 40) def draw(self): pg.draw.circle(self.surface, (255, 255, 255), self.pos, 40) def move(self, target): x = (80 * (target[0] // 80)) + 40 y = (80 * (target[1] // 80)) + 40 self.pos = (x, y) class Game: def __init__(self): pg.init() self.clock = pg.time.Clock() pg.display.set_caption(TITLE) self.surface = pg.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) self.loop = True self.player = Player(self.surface) def main(self): while self.loop: self.grid_loop() pg.quit() def grid_loop(self): self.surface.fill((0, 0, 0)) for row in range(TILES_HORIZONTAL): for col in range(row % 2, TILES_HORIZONTAL, 2): pg.draw.rect( self.surface, (40, 40, 40), (row * TILE_SIZE, col * TILE_SIZE, TILE_SIZE, TILE_SIZE), ) self.player.draw() for event in pg.event.get(): if event.type == pg.QUIT: self.loop = False elif event.type == pg.KEYDOWN: if event.key == pg.K_ESCAPE: self.loop = False elif event.type == pg.MOUSEBUTTONUP: pos = pg.mouse.get_pos() self.player.move(pos) pg.display.update() if __name__ == "__main__": mygame = Game() mygame.main()