forked from s434673/AI_Waiter
File division,
Class Matrix, Waiter, Graphics All graphics in Graphics (draw, clear, update) Waiter movement moved to Waiter Main reduced to minimum
This commit is contained in:
parent
8b1ce73354
commit
b06e382322
125
main.py
125
main.py
@ -1,108 +1,41 @@
|
|||||||
import sys
|
import sys
|
||||||
import pygame
|
from src.graphics import *
|
||||||
|
from src.matrix import Matrix
|
||||||
|
from src.waiter import Waiter
|
||||||
|
|
||||||
|
|
||||||
# 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.frame = 0
|
|
||||||
self.imageWaiter = waiter
|
|
||||||
self.imageFloor = floor
|
|
||||||
|
|
||||||
def move(self, x, y):
|
|
||||||
self.moveX += x
|
|
||||||
self.moveY -= y
|
|
||||||
|
|
||||||
def clear(self, x, y):
|
|
||||||
cx = self.moveX + x
|
|
||||||
cy = self.moveY + y
|
|
||||||
screen.blit(self.imageFloor, (cx * block_size, cy * block_size))
|
|
||||||
|
|
||||||
def update(self):
|
|
||||||
screen.blit(self.imageWaiter, (self.moveX * block_size, self.moveY * block_size))
|
|
||||||
|
|
||||||
|
|
||||||
# TILE
|
|
||||||
class Tile:
|
|
||||||
def __init__(self, x_position, y_position):
|
|
||||||
self.x_position = x_position
|
|
||||||
self.y_position = y_position
|
|
||||||
self.watch_through = 1
|
|
||||||
self.walk_through = 1
|
|
||||||
self.action_required = 0
|
|
||||||
|
|
||||||
|
|
||||||
# TABLE
|
|
||||||
class Table(Tile):
|
|
||||||
def __init__(self, x_position, y_position):
|
|
||||||
super().__init__(x_position, y_position)
|
|
||||||
self.walk_through = 0
|
|
||||||
|
|
||||||
|
|
||||||
# SETUP
|
|
||||||
pygame.init()
|
|
||||||
screen = pygame.display.set_mode((700, 750))
|
|
||||||
done = False
|
|
||||||
block_size = 50
|
|
||||||
clock = pygame.time.Clock()
|
|
||||||
fps = 40
|
|
||||||
ani = 40
|
|
||||||
rect = 1
|
|
||||||
|
|
||||||
floor = pygame.image.load('../resources/images/floor.jpg')
|
|
||||||
table = pygame.image.load('../resources/images/table.png')
|
|
||||||
waiter = pygame.image.load('../resources/images/waiter.png')
|
|
||||||
matrix = []
|
|
||||||
|
|
||||||
|
|
||||||
def drawBackground():
|
|
||||||
for y in range(15):
|
|
||||||
for x in range(14):
|
|
||||||
screen.blit(floor, (x * block_size, y * block_size))
|
|
||||||
|
|
||||||
|
|
||||||
def matrix_creator():
|
|
||||||
for x in range(14):
|
|
||||||
matrix.append([0] * 15)
|
|
||||||
|
|
||||||
for x in range(14):
|
|
||||||
for y in range(15):
|
|
||||||
matrix[x][y] = Tile(x, y)
|
|
||||||
|
|
||||||
|
|
||||||
waiterPly = Waiter()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
drawBackground()
|
# SETUP
|
||||||
matrix_creator()
|
pygame.init()
|
||||||
|
clock = pygame.time.Clock()
|
||||||
|
fps = 40
|
||||||
|
# matrix = []
|
||||||
|
waiterPly = Waiter()
|
||||||
|
graphics = Graphics()
|
||||||
|
|
||||||
while not done:
|
# init functions
|
||||||
|
graphics.drawBackground()
|
||||||
|
graphics.update(waiterPly.moveX, waiterPly.moveY)
|
||||||
|
|
||||||
|
# matrix_creator()
|
||||||
|
|
||||||
|
matrix = Matrix()
|
||||||
|
|
||||||
|
while True:
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
break
|
||||||
|
|
||||||
if event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_LEFT:
|
if event.key == pygame.K_ESCAPE:
|
||||||
waiterPly.move(-rect, 0)
|
pygame.quit()
|
||||||
waiterPly.clear(rect, 0)
|
sys.exit()
|
||||||
if event.key == pygame.K_RIGHT:
|
break
|
||||||
waiterPly.move(rect, 0)
|
|
||||||
waiterPly.clear(-rect, 0)
|
graphics.clear(waiterPly.moveX, waiterPly.moveY)
|
||||||
if event.key == pygame.K_UP:
|
waiterPly.update(event)
|
||||||
waiterPly.move(0, rect)
|
graphics.update(waiterPly.moveX, waiterPly.moveY)
|
||||||
waiterPly.clear(0, rect)
|
|
||||||
if event.key == pygame.K_DOWN:
|
|
||||||
waiterPly.move(0, -rect)
|
|
||||||
waiterPly.clear(0, -rect)
|
|
||||||
waiterPly.update()
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
clock.tick(fps)
|
clock.tick(fps)
|
||||||
|
|
||||||
# # Testy funkcjonalne
|
|
||||||
# matrix[0][0] = Table(0, 0)
|
|
||||||
# print(matrix[0][0].walk_through, matrix[1][0].walk_through)
|
|
||||||
|
23
src/graphics.py
Normal file
23
src/graphics.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
|
||||||
|
class Graphics:
|
||||||
|
def __init__(self):
|
||||||
|
self.image = {
|
||||||
|
'floor': pygame.image.load('../resources/images/floor.jpg'),
|
||||||
|
'table': pygame.image.load('../resources/images/table.png'),
|
||||||
|
'waiter': pygame.image.load('../resources/images/waiter.png'),
|
||||||
|
}
|
||||||
|
self.screen = pygame.display.set_mode((700, 750))
|
||||||
|
self.block_size = 50
|
||||||
|
|
||||||
|
def drawBackground(self):
|
||||||
|
for y in range(15):
|
||||||
|
for x in range(14):
|
||||||
|
self.screen.blit(self.image['floor'], (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))
|
||||||
|
|
||||||
|
def update(self, x, y):
|
||||||
|
self.screen.blit(self.image['waiter'], (x * self.block_size, y * self.block_size))
|
15
src/matrix.py
Normal file
15
src/matrix.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
from src.tile import Tile
|
||||||
|
|
||||||
|
|
||||||
|
class Matrix:
|
||||||
|
def __init__(self):
|
||||||
|
self.matrix = []
|
||||||
|
for x in range(14):
|
||||||
|
self.matrix.append([0] * 15)
|
||||||
|
|
||||||
|
for x in range(14):
|
||||||
|
for y in range(15):
|
||||||
|
self.matrix[x][y] = Tile(type_='floor', watch_through=1)
|
||||||
|
|
||||||
|
def get_name(self, x, y):
|
||||||
|
return self.matrix[x][y].type
|
@ -1 +1,7 @@
|
|||||||
|
# TILE
|
||||||
|
class Tile:
|
||||||
|
def __init__(self, type_, watch_through):
|
||||||
|
self.watch_through = watch_through
|
||||||
|
self.walk_through = 1
|
||||||
|
self.action_required = 0
|
||||||
|
self.type = type_
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
screen = pygame.display.set_mode((700, 750))
|
||||||
|
block_size = 50
|
||||||
|
|
||||||
|
|
||||||
|
# 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.frame = 0
|
||||||
|
|
||||||
|
#Borders
|
||||||
|
def move(self, x, y):
|
||||||
|
if 0 <= self.moveX + x <= 14:
|
||||||
|
self.moveX += x
|
||||||
|
if 0 <= self.moveY + y <= 15:
|
||||||
|
self.moveY += y
|
||||||
|
|
||||||
|
def update(self, event):
|
||||||
|
if event.type == pygame.KEYDOWN:
|
||||||
|
if event.key == pygame.K_LEFT:
|
||||||
|
self.move(-1, 0)
|
||||||
|
if event.key == pygame.K_RIGHT:
|
||||||
|
self.move(1, 0)
|
||||||
|
if event.key == pygame.K_UP:
|
||||||
|
self.move(0, -1)
|
||||||
|
if event.key == pygame.K_DOWN:
|
||||||
|
self.move(0, 1)
|
Loading…
Reference in New Issue
Block a user