2021-03-16 10:06:56 +01:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
|
|
|
import pygame
|
|
|
|
|
|
|
|
from config import *
|
|
|
|
from app.board import Board
|
2021-03-30 11:24:50 +02:00
|
|
|
from app.tractor import Tractor
|
2021-03-16 10:06:56 +01:00
|
|
|
|
|
|
|
|
|
|
|
class App:
|
|
|
|
def __init__(self):
|
|
|
|
self.__running = True
|
|
|
|
self.__screen = None
|
|
|
|
self.__clock = None
|
|
|
|
self.__board = Board()
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor = Tractor(self.__board)
|
2021-03-16 10:06:56 +01:00
|
|
|
|
|
|
|
def initialize(self):
|
|
|
|
pygame.init()
|
|
|
|
pygame.display.set_caption(CAPTION)
|
|
|
|
self.__screen = pygame.display.set_mode((WIDTH, HEIGHT))
|
|
|
|
|
|
|
|
self.__clock = pygame.time.Clock()
|
|
|
|
|
|
|
|
def event_handler(self, event: pygame.event.Event):
|
|
|
|
if event.type == pygame.QUIT:
|
|
|
|
self.__running = False
|
|
|
|
|
|
|
|
def loop_handler(self):
|
|
|
|
self.__board.draw(self.__screen)
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor.draw(self.__screen)
|
2021-03-16 10:06:56 +01:00
|
|
|
|
|
|
|
def keys_pressed_handler(self):
|
|
|
|
keys = pygame.key.get_pressed()
|
|
|
|
|
|
|
|
if keys[pygame.K_UP]:
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor.move_up()
|
|
|
|
print(self.__tractor)
|
2021-03-16 10:06:56 +01:00
|
|
|
if keys[pygame.K_DOWN]:
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor.move_down()
|
|
|
|
print(self.__tractor)
|
2021-03-16 10:06:56 +01:00
|
|
|
if keys[pygame.K_LEFT]:
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor.move_left()
|
|
|
|
print(self.__tractor)
|
2021-03-16 10:06:56 +01:00
|
|
|
if keys[pygame.K_RIGHT]:
|
2021-03-30 11:24:50 +02:00
|
|
|
self.__tractor.move_right()
|
|
|
|
print(self.__tractor)
|
|
|
|
|
|
|
|
if keys[pygame.K_h]:
|
|
|
|
self.__tractor.harvest()
|
|
|
|
|
|
|
|
if keys[pygame.K_v]:
|
|
|
|
self.__tractor.sow()
|
|
|
|
|
|
|
|
if keys[pygame.K_n]:
|
|
|
|
self.__tractor.hydrate()
|
|
|
|
|
|
|
|
if keys[pygame.K_f]:
|
|
|
|
self.__tractor.fertilize()
|
|
|
|
|
2021-03-16 10:06:56 +01:00
|
|
|
|
|
|
|
def update_screen(self):
|
|
|
|
pygame.display.flip()
|
|
|
|
|
|
|
|
def quit(self):
|
|
|
|
pygame.quit()
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
self.initialize()
|
|
|
|
|
|
|
|
while self.__running:
|
|
|
|
self.__clock.tick(FPS)
|
|
|
|
|
|
|
|
for event in pygame.event.get():
|
|
|
|
self.event_handler(event)
|
|
|
|
|
|
|
|
self.keys_pressed_handler()
|
|
|
|
|
|
|
|
self.loop_handler()
|
|
|
|
self.update_screen()
|
|
|
|
|
|
|
|
self.quit()
|