refactor 1
This commit is contained in:
parent
9c4b811c98
commit
2ea0e3b27d
@ -22,11 +22,25 @@ class GridDraw():
|
|||||||
self,
|
self,
|
||||||
width = None,
|
width = None,
|
||||||
height = None,
|
height = None,
|
||||||
|
tiles_x = None,
|
||||||
|
tiles_y = None,
|
||||||
background = None
|
background = None
|
||||||
):
|
):
|
||||||
self.width = width if width != None else 100
|
self.width = width if width != None else 100
|
||||||
self.height = height if height != None else 100
|
self.height = height if height != None else 100
|
||||||
|
|
||||||
|
self.tiles_x = tiles_x if tiles_x != None else 10
|
||||||
|
self.tiles_y = tiles_y if tiles_y != None else 10
|
||||||
|
|
||||||
|
self.tile_width = self.width / self.tiles_x
|
||||||
|
self.tile_height = self.height / self.tiles_y
|
||||||
|
|
||||||
self.background = background if background != None else Colors.BLACK
|
self.background = background if background != None else Colors.BLACK
|
||||||
|
|
||||||
|
self.sprites = {
|
||||||
|
'VACUUM': pygame.transform.scale(pygame.image.load('media/sprites/robot_vacuum.png'), (self.tile_width, self.tile_height)),
|
||||||
|
'WALL': pygame.transform.scale(pygame.image.load('media/sprites/wall.png'), (self.tile_width, self.tile_height)),
|
||||||
|
}
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
self.screen = pygame.display.set_mode((self.width, self.height))
|
self.screen = pygame.display.set_mode((self.width, self.height))
|
||||||
@ -34,15 +48,20 @@ class GridDraw():
|
|||||||
def start_draw(self):
|
def start_draw(self):
|
||||||
self.screen.fill(Colors.BLACK)
|
self.screen.fill(Colors.BLACK)
|
||||||
|
|
||||||
def end_draw(self):
|
def end_draw(self, delay = None):
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
|
delay = delay if delay != None else 10
|
||||||
|
pygame.time.delay(delay)
|
||||||
|
|
||||||
@default_color
|
@default_color
|
||||||
def line(self, x_1, y_1, x_2, y_2, color = None):
|
def line(self, x_1, y_1, x_2, y_2, color = None):
|
||||||
pygame.draw.line(self.screen, color, (x_1, y_1), (x_2, y_2))
|
pygame.draw.line(self.screen, color, (x_1, y_1), (x_2, y_2))
|
||||||
|
|
||||||
@default_color
|
@default_color
|
||||||
def board(self, tiles_x, tiles_y, color = None):
|
def board(self, tiles_x = None, tiles_y = None, color = None):
|
||||||
|
tiles_x = tiles_x if tiles_x != None else self.tiles_x
|
||||||
|
tiles_y = tiles_y if tiles_y != None else self.tiles_y
|
||||||
|
|
||||||
tiles_width = self.width / tiles_x
|
tiles_width = self.width / tiles_x
|
||||||
tiles_height = self.height / tiles_y
|
tiles_height = self.height / tiles_y
|
||||||
|
|
||||||
@ -54,4 +73,16 @@ class GridDraw():
|
|||||||
|
|
||||||
@default_color
|
@default_color
|
||||||
def circle(self, x, y, radius, color = None):
|
def circle(self, x, y, radius, color = None):
|
||||||
pygame.draw.circle(self.screen, color, (x, y), radius)
|
pygame.draw.circle(self.screen, color, (x, y), radius)
|
||||||
|
|
||||||
|
def draw_vacuum(self, tile_x, tile_y):
|
||||||
|
self.screen.blit(
|
||||||
|
self.sprites['VACUUM'],
|
||||||
|
(tile_x * self.tile_width, tile_y * self.tile_height)
|
||||||
|
)
|
||||||
|
|
||||||
|
def draw_wall(self, tile_x, tile_y):
|
||||||
|
self.screen.blit(
|
||||||
|
self.sprites['WALL'],
|
||||||
|
(tile_x * self.tile_width, tile_y * self.tile_height)
|
||||||
|
)
|
@ -2,30 +2,37 @@ from Interface.grid_draw import GridDraw, Colors
|
|||||||
import sys
|
import sys
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
GRID_SIZE_X = 10
|
||||||
|
GRID_SIZE_Y = 10
|
||||||
|
|
||||||
# dummy function
|
# dummy function
|
||||||
def initial_draw():
|
def initial_draw():
|
||||||
grid = GridDraw(500, 500)
|
grid = GridDraw(500, 500, GRID_SIZE_X, GRID_SIZE_Y)
|
||||||
tile_width = 500 / 10
|
|
||||||
tile_height = 500 / 10
|
x = 2
|
||||||
x = tile_width / 2
|
y = 2
|
||||||
y = tile_height / 2
|
|
||||||
radius = 15
|
|
||||||
while True:
|
while True:
|
||||||
grid.start_draw()
|
grid.start_draw()
|
||||||
grid.board(10, 10)
|
grid.board()
|
||||||
|
|
||||||
|
grid.draw_wall(0, 0)
|
||||||
|
grid.draw_vacuum(x, y)
|
||||||
|
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT:
|
if event.type == pygame.QUIT:
|
||||||
sys.exit()
|
sys.exit()
|
||||||
if event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_LEFT:
|
match event.key:
|
||||||
x -= tile_width
|
case pygame.K_LEFT:
|
||||||
if event.key == pygame.K_RIGHT:
|
x = (x - 1 + GRID_SIZE_X) % GRID_SIZE_X
|
||||||
x += tile_width
|
case pygame.K_RIGHT:
|
||||||
if event.key == pygame.K_UP:
|
x = (x + 1 + GRID_SIZE_X) % GRID_SIZE_X
|
||||||
y -= tile_height
|
case pygame.K_UP:
|
||||||
if event.key == pygame.K_DOWN:
|
y = (y - 1 + GRID_SIZE_Y) % GRID_SIZE_Y
|
||||||
y += tile_height
|
case pygame.K_DOWN:
|
||||||
grid.circle(x, y, 20, color=Colors.RED)
|
y = (y + 1 + GRID_SIZE_Y) % GRID_SIZE_Y
|
||||||
grid.end_draw()
|
|
||||||
pygame.time.delay(10)
|
grid.end_draw(delay=10)
|
||||||
|
|
||||||
|
|
||||||
|
BIN
media/sprites/robot_vacuum.png
Normal file
BIN
media/sprites/robot_vacuum.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 328 KiB |
BIN
media/sprites/wall.png
Normal file
BIN
media/sprites/wall.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Loading…
Reference in New Issue
Block a user