def handle_events(self): """Function to handle user input.""" for event in pygame.event.get(): #quit game if event.type == QUIT: command_queue.put("Exit"); #sys.exit() #If user has pressed a key if event.type == KEYDOWN: bomb = None missile = None #get mouse position pos = pygame.mouse.get_pos() if self.TYPE == "Bombs": #if player still has bombs to drop if (self.nbombs < self.maxbombs): #if 1-9 pressed, set off bomb by creating a new object and adding it to self.bombs if event.key == pygame.K_1: bomb = Bomb(pos[0], 0, self.bases[0].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 0) if event.key == pygame.K_2: bomb = Bomb(pos[0], 0, self.cities[0].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 1) if event.key == pygame.K_3: bomb = Bomb(pos[0], 0, self.cities[1].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 2) if event.key == pygame.K_4: bomb = Bomb(pos[0], 0, self.cities[2].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 3) if event.key == pygame.K_5: bomb = Bomb(pos[0], 0, self.bases[1].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 4) if event.key == pygame.K_6: bomb = Bomb(pos[0], 0, self.cities[3].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 5) if event.key == pygame.K_7: bomb = Bomb(pos[0], 0, self.cities[4].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 6) if event.key == pygame.K_8: bomb = Bomb(pos[0], 0, self.cities[5].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 7) if event.key == pygame.K_9: bomb = Bomb(pos[0], 0, self.bases[2].rect.centerx, self.size[1] - self.city_width, self.bomb_speed, 8) #if a bomb has been created, add it to the command_queue and to self.bombs if bomb != None: data = pickle.dumps(bomb) command_queue.put(data) bomb.gs = self self.bombs.append(bomb) self.nbombs = self.nbombs + 1 if self.TYPE == "Missiles": #fire missiles from bases with a, s, d. First make sure that there are enough missiles left in the base if event.key == pygame.K_a: if (self.bases[0].count > 0): self.bases[0].count = self.bases[0].count - 1 missile = Missile(self.bases[0].rect.centerx, self.size[1] - self.city_width, pos[0], pos[1], self.missile_speed, 0) if event.key == pygame.K_s: if (self.bases[1].count > 0): self.bases[1].count = self.bases[1].count - 1 missile = Missile(self.bases[1].rect.centerx, self.size[1] - self.city_width, pos[0], pos[1], self.missile_speed, 1) if event.key == pygame.K_d: if (self.bases[2].count > 0): self.bases[2].count = self.bases[2].count - 1 missile = Missile(self.bases[2].rect.centerx, self.size[1] - self.city_width, pos[0], pos[1], self.missile_speed, 2) #if a missile has been created, add it to the command_queue and to self.missiles if missile != None: data = pickle.dumps(missile) command_queue.put(data) missile.gs = self self.missiles.append(missile)