from pygame import * import sys, random from sprites.cell import CELL_SIZE from sprites.grass import Grass from sprites.house import House from sprites.landfill import Landfill from sprites.garbage_collector import Garbage_collector from pygame.locals import * import utils ##INITIALIZE STATIC VARIABLES######### FPS = 5 all_sprites = sprite.Group() fps_clock = time.Clock() ###################################### ##INITIALIZE DYNAMIC VARIABLES######## home_amount = utils.set_home_amount() obstacles_coords = [] PLAY_WIDTH = home_amount*CELL_SIZE PLAY_HEIGHT = PLAY_WIDTH WINDOW_WIDTH = PLAY_WIDTH WINDOW_HEIGHT = PLAY_HEIGHT ###################################### ##GAMEWINDOW########################## GAMEWINDOW = display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), 0, 32) display.set_caption('Śmieciarz WMI') ###################################### ##GENERATE GRASS################################################################## grass = [] for k in range(0,(PLAY_WIDTH//CELL_SIZE)*(PLAY_HEIGHT//CELL_SIZE)): x,y = (int(k%(PLAY_WIDTH//CELL_SIZE)), int(k/(PLAY_WIDTH//CELL_SIZE))) grass.append( Grass(x,y) ) for item in grass: all_sprites.add(item) ################################################################################## ##GENERATE HOUSES################################################################# houses = [] home_counter = home_amount while( home_counter != 0 ): x,y = utils.generate_rand_coordinates((PLAY_WIDTH//CELL_SIZE)-1,(PLAY_HEIGHT//CELL_SIZE)-1) if( (x,y) not in obstacles_coords ): houses.append( House(x,y, 10, 10, 10) ) obstacles_coords.append((x,y)) home_counter = home_counter - 1 for item in houses: all_sprites.add(item) ################################################################################## ##GENERATE LANDFILLS############################################################## landfills = [] landfill_counter = 3 while( landfill_counter != 0): x,y = utils.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 for item in landfills: all_sprites.add(item) ################################################################################## ##GENERATE GARBAGE COLLECTOR###################################################### while( True ): x,y = utils.generate_rand_coordinates((PLAY_WIDTH//CELL_SIZE)-1,(PLAY_HEIGHT//CELL_SIZE)-1) if( (x,y) not in obstacles_coords ): gc = Garbage_collector(x,y) break all_sprites.add(gc) ################################################################################## ##GAME LOOP####################################################################### while(1): for e in event.get(): if e.type == QUIT: quit() sys.exit() if e.type == KEYUP: if e.key == K_UP: gc.move('up', obstacles_coords) if e.key == K_DOWN: gc.move('down', obstacles_coords) if e.key == K_RIGHT: gc.move('right', obstacles_coords) if e.key == K_LEFT: gc.move('left', obstacles_coords) all_sprites.update() all_sprites.draw(GAMEWINDOW) for item in all_sprites: if( type(item) == House ): item.generate_rubbish() display.flip() fps_clock.tick(FPS) ##################################################################################