Final exam version
This commit is contained in:
64
venv/lib/python3.12/site-packages/pygame/examples/grid.py
Normal file
64
venv/lib/python3.12/site-packages/pygame/examples/grid.py
Normal file
@@ -0,0 +1,64 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user