Verteiltesystheme/Code/UI/PlayingField.py

58 lines
1.7 KiB
Python

import pygame as pygame
from Code import Config
from Code.Config import GeneralConfig, Colors
from Code.GameLogic.Rules import Rules
from Code.UI import Square
from Code.UI.Field import Field
class GameState:
def __init__(self):
self.run = True
self.pause_for_inpuit=False
self.field = Field()
def event_handler(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.run = False
if event.type == pygame.MOUSEBUTTONDOWN:
self._update_field(event)
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
self.pause_for_inpuit=not self.pause_for_inpuit
def _update_field(self, event):
rule = Rules()
for line in self.field.squares:
for square in line:
if square.rect.collidepoint(event.pos):
rule.get_neighborhood(square, field_of_squares=self.field.squares)
square.update(not square.active)
def update(self):
pass
def redraw_field(self, window):
window.fill(Colors.BLACK)
self.field.draw_squares(window)
def run_game():
pygame.init()
pygame.display.set_caption(GeneralConfig.window_caption)
window = pygame.display.set_mode((GeneralConfig.width, GeneralConfig.height))
clock = pygame.time.Clock()
game_state = GameState()
while game_state.run:
clock.tick(GeneralConfig.fps)
game_state.event_handler()
if game_state.pause_for_inpuit:
game_state.update()
game_state.redraw_field(window)
pygame.display.update()
if __name__ == "__main__":
run_game()