From 431dadacbc58a8d7cb818e37d029db4a8dabd4d6 Mon Sep 17 00:00:00 2001 From: s444427 Date: Fri, 3 Apr 2020 20:15:07 +0200 Subject: [PATCH] Matrix implemented to waiter --- main.py | 18 ++++++------------ src/graphics.py | 4 ++-- src/matrix.py | 7 ++++++- src/waiter.py | 22 ++++++++++------------ 4 files changed, 24 insertions(+), 27 deletions(-) diff --git a/main.py b/main.py index 4269adf..1c5ff22 100644 --- a/main.py +++ b/main.py @@ -3,23 +3,17 @@ from src.graphics import * from src.matrix import Matrix from src.waiter import Waiter - if __name__ == "__main__": # SETUP pygame.init() clock = pygame.time.Clock() fps = 40 - # matrix = [] - waiterPly = Waiter() + waiter = Waiter() graphics = Graphics() # init functions - graphics.drawBackground() - graphics.update(waiterPly.moveX, waiterPly.moveY) - - # matrix_creator() - - matrix = Matrix() + graphics.drawBackground(waiter.matrix) + graphics.update(waiter.X, waiter.Y) while True: for event in pygame.event.get(): @@ -34,8 +28,8 @@ if __name__ == "__main__": sys.exit() break - graphics.clear(waiterPly.moveX, waiterPly.moveY) - waiterPly.update(event) - graphics.update(waiterPly.moveX, waiterPly.moveY) + graphics.clear(waiter.X, waiter.Y) + waiter.update(event) + graphics.update(waiter.X, waiter.Y) pygame.display.flip() clock.tick(fps) diff --git a/src/graphics.py b/src/graphics.py index 0f1ba76..9369b74 100644 --- a/src/graphics.py +++ b/src/graphics.py @@ -11,10 +11,10 @@ class Graphics: self.screen = pygame.display.set_mode((700, 750)) self.block_size = 50 - def drawBackground(self): + def drawBackground(self, matrix): for y in range(15): for x in range(14): - self.screen.blit(self.image['floor'], (x * self.block_size, y * self.block_size)) + self.screen.blit(self.image[matrix.get_type(x, y)], (x * self.block_size, y * self.block_size)) def clear(self, x, y): self.screen.blit(self.image['floor'], (x * self.block_size, y * self.block_size)) diff --git a/src/matrix.py b/src/matrix.py index 2a7f36d..bedfffe 100644 --- a/src/matrix.py +++ b/src/matrix.py @@ -10,6 +10,11 @@ class Matrix: for x in range(14): for y in range(15): self.matrix[x][y] = Tile(type_='floor', watch_through=1) + self.matrix[1][0].type = 'waiter' + self.matrix[1][0].walk_through = 0 - def get_name(self, x, y): + def get_type(self, x, y): return self.matrix[x][y].type + + def walk_through(self, x, y): + return self.matrix[x][y].walk_through diff --git a/src/waiter.py b/src/waiter.py index e1de286..ccb53c6 100644 --- a/src/waiter.py +++ b/src/waiter.py @@ -1,25 +1,23 @@ import pygame - -screen = pygame.display.set_mode((700, 750)) -block_size = 50 +from src.matrix import Matrix # WAITER class Waiter(pygame.sprite.Sprite): def __init__(self): pygame.sprite.Sprite.__init__(self) - self.moveX = 0 - self.moveY = 0 - self.clearX = 0 - self.clearY = 0 + self.X = 0 + self.Y = 0 self.frame = 0 + self.matrix = Matrix() - #Borders + # Borders def move(self, x, y): - if 0 <= self.moveX + x <= 14: - self.moveX += x - if 0 <= self.moveY + y <= 15: - self.moveY += y + if self.matrix.walk_through(self.X + x, self.Y + y) == 1: + if 0 <= self.X + x <= 14: + self.X += x + if 0 <= self.Y + y <= 15: + self.Y += y def update(self, event): if event.type == pygame.KEYDOWN: