refactor, optymalizacja
This commit is contained in:
parent
04927589c2
commit
af1f91c4f0
@ -22,5 +22,5 @@ def set_home_amount():
|
||||
|
||||
home_amount = set_home_amount()
|
||||
|
||||
PLAY_WIDTH = (home_amount+2)*CELL_SIZE
|
||||
PLAY_WIDTH = (home_amount + 4)*CELL_SIZE
|
||||
PLAY_HEIGHT = PLAY_WIDTH
|
||||
|
23
game.py
23
game.py
@ -14,9 +14,11 @@ fps_clock = time.Clock()
|
||||
|
||||
######################################
|
||||
|
||||
##INITIALIZE DYNAMIC VARIABLES########
|
||||
obstacles_coords = []
|
||||
######################################
|
||||
interactables = {
|
||||
"homes": [],
|
||||
"landfills": []
|
||||
}
|
||||
|
||||
|
||||
##GAMEWINDOW##########################
|
||||
WINDOW_WIDTH = PLAY_WIDTH
|
||||
@ -30,10 +32,9 @@ display.set_icon(icon)
|
||||
##
|
||||
# Generate level
|
||||
utils.generate_grass(all_sprites)
|
||||
utils.generate_landfills(all_sprites, obstacles_coords)
|
||||
utils.generate_houses(all_sprites, obstacles_coords)
|
||||
utils.add_frame_as_obstacles(obstacles_coords)
|
||||
gc = utils.generate_garbage_collector(all_sprites, obstacles_coords)
|
||||
utils.generate_landfills(all_sprites, interactables)
|
||||
utils.generate_houses(all_sprites, interactables)
|
||||
gc = utils.generate_garbage_collector(all_sprites, interactables)
|
||||
##
|
||||
|
||||
##GAME LOOP#######################################################################
|
||||
@ -44,13 +45,13 @@ while(1):
|
||||
sys.exit()
|
||||
if e.type == KEYUP:
|
||||
if e.key == K_UP:
|
||||
gc.move('up', obstacles_coords)
|
||||
gc.move('up', interactables["homes"] + interactables["landfills"])
|
||||
if e.key == K_DOWN:
|
||||
gc.move('down', obstacles_coords)
|
||||
gc.move('down', interactables["homes"] + interactables["landfills"])
|
||||
if e.key == K_RIGHT:
|
||||
gc.move('right', obstacles_coords)
|
||||
gc.move('right', interactables["homes"] + interactables["landfills"])
|
||||
if e.key == K_LEFT:
|
||||
gc.move('left', obstacles_coords)
|
||||
gc.move('left', interactables["homes"] + interactables["landfills"])
|
||||
|
||||
all_sprites.update()
|
||||
all_sprites.draw(GAMEWINDOW)
|
||||
|
@ -1,16 +1,16 @@
|
||||
import pygame
|
||||
from sprites.cell import Cell
|
||||
|
||||
from sprites.cell import Cell, CELL_SIZE
|
||||
from config import PLAY_HEIGHT, PLAY_WIDTH
|
||||
|
||||
class Garbage_collector(Cell):
|
||||
def __init__(self, x, y):
|
||||
Cell.__init__(self, x, y)
|
||||
self.image = pygame.image.load("images/garbage_collector.png")
|
||||
self.move_options = {
|
||||
"up": lambda forbidden: ('y', self.y - 1) if (self.x, self.y - 1) not in forbidden else ('y', self.y),
|
||||
"down": lambda forbidden: ('y', self.y + 1) if (self.x, self.y + 1) not in forbidden else ('y', self.y),
|
||||
"left": lambda forbidden: ('x', self.x - 1) if (self.x - 1, self.y) not in forbidden else ('x', self.x),
|
||||
"right": lambda forbidden: ('x', self.x + 1) if (self.x + 1, self.y) not in forbidden else ('x', self.x)
|
||||
"up": lambda forbidden: ('y', self.y - 1) if (self.x, self.y - 1) not in forbidden and self.y - 1 >= 0 else ('y', self.y),
|
||||
"down": lambda forbidden: ('y', self.y + 1) if (self.x, self.y + 1) not in forbidden and self.y + 1 < PLAY_HEIGHT // CELL_SIZE else ('y', self.y),
|
||||
"left": lambda forbidden: ('x', self.x - 1) if (self.x - 1, self.y) not in forbidden and self.x - 1 >= 0 else ('x', self.x),
|
||||
"right": lambda forbidden: ('x', self.x + 1) if (self.x + 1, self.y) not in forbidden and self.x + 1 < PLAY_WIDTH // CELL_SIZE else ('x', self.x)
|
||||
}
|
||||
|
||||
def move(self, direction, forbidden):
|
||||
@ -19,5 +19,5 @@ class Garbage_collector(Cell):
|
||||
self.x = value
|
||||
elif(destination is 'y'):
|
||||
self.y = value
|
||||
|
||||
self.update()
|
||||
|
26
utils.py
26
utils.py
@ -12,13 +12,6 @@ from sprites.garbage_collector import Garbage_collector
|
||||
def generate_rand_coordinates(max_x, max_y):
|
||||
return (random.randint(0, max_x), random.randint(0, (max_y)))
|
||||
|
||||
def add_frame_as_obstacles(obstacles_coords):
|
||||
for x in range(0, PLAY_WIDTH//CELL_SIZE):
|
||||
obstacles_coords.append((x,-1))
|
||||
obstacles_coords.append((-1,x))
|
||||
obstacles_coords.append((PLAY_WIDTH//CELL_SIZE,x))
|
||||
obstacles_coords.append((x,PLAY_HEIGHT//CELL_SIZE))
|
||||
|
||||
##GENERATE GRASS##################################################################
|
||||
def generate_grass(all_sprites):
|
||||
grass = []
|
||||
@ -40,9 +33,9 @@ def generate_houses(all_sprites, obstacles_coords):
|
||||
while(home_counter != 0):
|
||||
x, y = generate_rand_coordinates(
|
||||
(PLAY_WIDTH//CELL_SIZE)-1, (PLAY_HEIGHT//CELL_SIZE)-1)
|
||||
if(((x, y) or (x+1,y)) not in obstacles_coords):
|
||||
if(((x, y)) not in obstacles_coords["homes"] and ((x, y)) not in obstacles_coords["landfills"]):
|
||||
houses.append(House(x, y, 10, 10, 10))
|
||||
obstacles_coords.append((x, y))
|
||||
obstacles_coords["homes"].append((x, y))
|
||||
home_counter = home_counter - 1
|
||||
|
||||
for item in houses:
|
||||
@ -55,21 +48,10 @@ def generate_houses(all_sprites, obstacles_coords):
|
||||
def generate_landfills(all_sprites, obstacles_coords):
|
||||
landfills = []
|
||||
landfill_counter = 3
|
||||
|
||||
# while(landfill_counter != 0):
|
||||
# x, y = generate_rand_coordinates(
|
||||
# (PLAY_WIDTH//CELL_SIZE)-1, (PLAY_HEIGHT//CELL_SIZE)-1)
|
||||
# if((x, y) not in obstacles_coords):
|
||||
# landfills.append(Landfill(x, y, landfill_counter-1))
|
||||
# obstacles_coords.append((x, y))
|
||||
# landfill_counter = landfill_counter - 1
|
||||
y=0
|
||||
for x in range(landfill_counter):
|
||||
landfills.append(Landfill(x,y,x))
|
||||
obstacles_coords.append((x,y))
|
||||
|
||||
|
||||
|
||||
obstacles_coords["landfills"].append((x,y))
|
||||
for item in landfills:
|
||||
all_sprites.add(item)
|
||||
##################################################################################
|
||||
@ -81,7 +63,7 @@ def generate_garbage_collector(all_sprites, obstacles_coords):
|
||||
while(True):
|
||||
x, y = generate_rand_coordinates(
|
||||
(PLAY_WIDTH//CELL_SIZE)-1, (PLAY_HEIGHT//CELL_SIZE)-1)
|
||||
if((x, y) not in obstacles_coords):
|
||||
if((x, y) not in obstacles_coords["landfills"] and (x, y) not in obstacles_coords["homes"]):
|
||||
gc = Garbage_collector(x, y)
|
||||
break
|
||||
all_sprites.add(gc)
|
||||
|
Loading…
Reference in New Issue
Block a user