def run(self): """The main game loop""" while True: """-------------------------------MENU------------------------------------""" if self.state == S_MENU: self.menu.draw() self.keys = pygame.key.get_pressed() if self.state == S_MENU: for event in pygame.event.get(): # Handle generic events for event_type, callback in self.events.items(): if event.type == event_type: callback(event) # Handle keyboard events if event.type == pygame.KEYDOWN: for event_key in self.keymap_singlepress.keys(): if event.key == event_key: self.keymap_singlepress[(event_key)](event) """-------------------------------PREGAME MENU-----------------------------""" self.keys = pygame.key.get_pressed() if self.state == S_PREGAME: if self.pregame_menu == False: del (self.menu) self.menu = False self.pregame_menu = PreGameMenu(self) self.pregame_menu.draw() for event in pygame.event.get(): # Handle generic events for event_type, callback in self.events.items(): if event.type == event_type: callback(event) # Handle keyboard events if event.type == pygame.KEYDOWN: for event_key in self.keymap_singlepress.keys(): if event.key == event_key: self.keymap_singlepress[(event_key)](event) """-------------------------------GAME------------------------------------""" if self.state == S_GAME: if not self.paused: for event in pygame.event.get(): for event_type, callback in self.events.items(): if event.type == event_type: callback(event) if event.type == pygame.KEYDOWN: for event_key in self.keymap_singlepress.keys(): if event.key == event_key: self.keymap_singlepress[(event_key)](event) for event_key in self.keymap.keys(): if self.keys[event_key]: self.keymap[(event_key)]() else: pass self.map.draw() for bullet in self.ammo: bullet.update() bullet.draw() for player in self.agents: player.update() player.draw() for animation in Animation.List: animation.animate() animation.draw() if len(self.agents) < 2: if self.wait > 0: self.wait -= self.clock.get_time() else: self.wait = 1500 if len(self.agents) == 1: self.stats.inform(self.agents[0].name, score=1) logging.debug(self.stats.data) self.agents[0].dead = True else: print("draw") if self.debug: print( str(self.stats.data[self.all_player_names[0]]. get('score', 0)) + " - " + str(self.stats.data[ self.all_player_names[1]].get('score', 0))) print('Distance: {}, Distance: {}'.format( self.stats.data[self.all_player_names[0]].get( 'move', '0'), self.stats.data[self.all_player_names[1]].get( 'move', '0'))) print('Shots: {}, Shots: {}'.format( self.stats.data[self.all_player_names[0]].get( 'shots_fired', '0'), self.stats.data[self.all_player_names[1]].get( 'shots_fired', '0'))) print('Stickybombs: {}, Stickybombs: {}'.format( self.stats.data[self.all_player_names[0]].get( 'stickybomb_fired', '0'), self.stats.data[self.all_player_names[1]].get( 'stickybomb_fired', '0'))) self.agents = [] self.ammo = [] Animation.List = [] self.betweengame_menu = False self.state = S_BETWEENGAME """------------------------------BETWEEN-----------------------------------""" if self.state == S_BETWEENGAME: if self.betweengame_menu == False: del (self.menu) self.menu = False self.betweengame_menu = BetweenGameMenu(self) self.betweengame_menu.draw() self.keys = pygame.key.get_pressed() if self.state == S_BETWEENGAME: for event in pygame.event.get(): for event_type, callback in self.events.items(): if event.type == event_type: callback(event) if event.type == pygame.KEYDOWN: for event_key in self.keymap_singlepress.keys(): if event.key == event_key: self.keymap_singlepress[(event_key)](event) """-------------------------------AFTER---------------------------------------""" if self.state == S_AFTERGAME: if self.aftergame_menu == False: del (self.menu) self.menu = False self.aftergame_menu = AfterGameMenu(self) self.aftergame_menu.draw() self.keys = pygame.key.get_pressed() if self.state == S_AFTERGAME: for event in pygame.event.get(): for event_type, callback in self.events.items(): if event.type == event_type: callback(event) if event.type == pygame.KEYDOWN: for event_key in self.keymap_singlepress.keys(): if event.key == event_key: self.keymap_singlepress[(event_key)](event) """-------------------------------UPGRADES------------------------------------""" if self.state == S_UPGRADES: pygame.quit() sys.exit() """-------------------------------ABOUT------------------------------------""" if self.state == S_ABOUT: self.menu = Menu() self.menu.about() """-------------------------------SETTINGS------------------------------------""" if self.state == S_SETTINGS: self.menu = Menu() self.menu.settings() if self.displaytime: self.screen.blit( self.font.render(str(int(self.clock.get_fps())), True, (255, 255, 255)), (10, 10)) pygame.display.flip() self.clock.tick(self.fps)
def start_pre_game(self): self.preGameMenu = PreGameMenu(self.w, self.h) self.mode = self.preGameMenu self.screen.blit(self.mode.bg, (0, 0)) disp.update()