Projekt_Si/app.py

80 lines
2.3 KiB
Python
Raw Normal View History

2024-03-13 23:25:49 +01:00
import pygame
import prefs
from classes.beerKeg import BeerKeg
from classes.coffeMachine import CoffeMachine
2024-03-13 23:25:49 +01:00
from pygame.locals import K_w, K_s, K_a, K_d
from classes.cell import Cell
from classes.agent import Agent
pygame.init()
window = pygame.display.set_mode((prefs.WIDTH, prefs.HEIGHT))
pygame.display.set_caption("Game Window")
def initBoard():
global cells
cells = []
for i in range(prefs.GRID_SIZE):
row = []
for j in range(prefs.GRID_SIZE):
cell = Cell(i, j)
row.append(cell)
cells.append(row)
2024-03-13 23:25:49 +01:00
# Na potrzeby prezentacji tworzę sobie prostokatne sciany na które nie da się wejść
x1 = 3
y1 = 2
for i in range(x1, x1+4):
for j in range(y1, y1+2):
cells[i][j].prepareTexture("sprites/wall.png")
2024-03-13 23:25:49 +01:00
cells[i][j].blocking_movement = True
cells[6][6].interactableItem = BeerKeg(cells[6][6], "Beer Keg")
cells[10][10].interactableItem = CoffeMachine(cells[10][10], "Coffe Machine")
2024-03-13 23:25:49 +01:00
def draw_grid(window, cells):
for i in range(prefs.GRID_SIZE):
for j in range(prefs.GRID_SIZE):
cells[i][j].draw(window)
if(cells[i][j].interactableItem):
cells[i][j].interactableItem.draw(window)
2024-03-13 23:25:49 +01:00
initBoard()
agent = Agent(prefs.SPAWN_POINT[0], prefs.SPAWN_POINT[1], cells)
2024-03-13 23:25:49 +01:00
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# takie głupie kontrolki do usunięcia potem, tylko do preznetacji
keys = pygame.key.get_pressed()
if keys[K_w] and not agent.moved:
agent.move_up()
if keys[K_s] and not agent.moved:
agent.move_down()
if keys[K_a] and not agent.moved:
agent.move_left()
if keys[K_d] and not agent.moved:
agent.move_right()
if not any([keys[K_w], keys[K_s], keys[K_a], keys[K_d]]):
agent.moved = False
if pygame.key.get_pressed()[pygame.K_e]:
if agent.current_cell.interactableItem and pygame.time.get_ticks() - agent.last_interact_time > 500:
agent.last_interact_time = pygame.time.get_ticks()
agent.current_cell.interactableItem.interact(agent)
2024-03-13 23:25:49 +01:00
window.fill((255, 0, 0))
draw_grid(window, cells)
agent.draw(window)
pygame.display.update()
pygame.quit()