def create_alien(ai_settings, screen, aliens, alien_number, row_number): alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + alien_number * (2 * alien_width) alien.rect.x = alien.x alien.rect.y = alien.rect.height + row_number * 2 * alien.rect.height aliens.add(alien)
def _spawn_alien2(self): #Spawn boss alien alien2 = Alien(self) alien2.type = 2 alien2.rect = alien2.rect2 self.aliens2.add(alien2)
def create_alien(number_aliens, screen, ai_settings, aliens, row_number): for alien_number in range(number_aliens): alien = Alien(screen, ai_settings) alien.x = alien.rect.width + alien.rect.width * 2 * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def _spawn_alien1(self): #Spawn minion alien alien1 = Alien(self) alien1.type = 1 alien1.rect = alien1.rect1 self.aliens1.add(alien1)
def create_alien(ai_s, screen, aliens, alien_number, row_number): alien = Alien(ai_s, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def create_alien(gs, screen, aliens, alien_num, row_number): # creates 1 alien and adds to row alien = Alien(gs, screen) alien_w = alien.rect.width alien.x = alien_w + (2 * alien_w) * alien_num alien.rect.x = alien.x alien.rect.y = alien.rect.height + (2 * alien.rect.height * row_number) aliens.add(alien)
def create_alien(ai_settings, screen, aliens, alien_number, row_number): """Create an alien and place it in the row.""" alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def _create_alien(self, alien_number, row_number): """Create an alien and place it in the row.""" alien = Alien(self) alien_width, alien_height = alien.rect.size alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number self.aliens.add(alien)
def _create_alien(self, alien_number, alien_width, alien_height, row_number): alien = Alien(self) alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien_height + 2 * alien_height * row_number self.aliens.add(alien)
def create_alien(settings, screen, aliens, alien_number, row_number): # CREATE ALIEN AND PLACE INTO ROW alien = Alien(settings, screen) alien_width = alien.rect.width # Spacing between each alien is equal to one alien width alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def create_alien(game_settings, screen, alien_number, aliens, row_number): alien = Alien(game_settings, screen) alien_width = alien.rect.width alien_height = alien.rect.height alien.x = alien_width + (2 * alien_width * alien_number) alien.y = alien_height + (2 * alien_height * row_number) alien.rect.x = alien.x alien.rect.y = alien.y aliens.add(alien)
def _create_alien(self, row_no, alien_number): alien = Alien(self) alien_width = alien.alien_rect.width alien_height = alien.alien_rect.height alien.y = alien_height + 2 * alien_height * row_no alien.x = alien_width + 2 * alien_number * alien_width alien.alien_rect.y = alien.y alien.alien_rect.x = alien.x self.aliens.add(alien)
def create_alien(ai_settings, screen, aliens, i, j): """创建一个外星人并加入舰队""" alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = ai_settings.first_ship_position_x + 2 * alien_width * i alien.rect.x = alien.x alien.y = ai_settings.first_ship_position_y +\ 2 * alien.rect.height * j # 这一步及其关键!!! 真是隐蔽啊...编程这东西, 太危险了. alien.rect.y = alien.y aliens.add(alien)
def create_alien(aliens, screen, settings, num, row, offset_y): #create alien new_alien = Alien(screen, settings) #modify its position #Its X position new_alien.x = (new_alien.alien_width + (2 * num * new_alien.alien_width)) new_alien.rect.x = new_alien.x #Its Y position new_alien.y = (new_alien.alien_height + (2 * row * new_alien.alien_height)) new_alien.rect.y = new_alien.y + offset_y aliens.add(new_alien)
def creat_alien( number_aliens_x, number_aliens_row, ai_settings, screen, aliens): for row in range(number_aliens_row): for number in range(number_aliens_x - 1): alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * number alien.rect.y = alien.rect.height + 2 * alien.rect.height * row alien.rect.x = alien.x aliens.add(alien)
def alien_generator(alien_color): ''' multiplies the alien object on the screen. setting up the x,y coordinates with the value of margin between them ''' for x in range(margin, screen_size[0] - margin, margin): for y in range(margin, int(screen_size[1]/2), margin): alien_vessel = Alien(alien_color, alien_height, alien_width, alien_health) alien_vessel.rect.x = x alien_vessel.rect.y = y alien_pos_list.append(alien_vessel.get_initial_pos()) alien_direction_list.append(alien_vessel.get_initial_dir()) alien_vessels_list.add(alien_vessel) all_sprites_list.add(alien_vessel)
def _create_fleet(self): '''create the fleet of aliens''' #create an alien & find the number of aliens in a row. #spacing between alien is equal to one alien alien=Alien(self) '''we use the attribute size,which contains a tuple with the width, & height of a rect object.''' alien_width,alien_height=alien.rect.size #we find the available space by subtracting margins on either side available_space_x=self.settings.screen_width-(2*alien_width) #finding aliens which can fit on the available space number_aliens_x=available_space_x//(2*alien_width) #Determine the number of rows of aliens that can fit on the screen ship_height=self.ship.rect.height available_space_y=self.settings.screen_height- ship_height-(3*alien_height) number_rows=available_space_y//(2*alien_height) #create the full fleet of aliens for row_number in range(number_rows): #create the first row of aliens for alien_number in range(number_aliens_x): self._create_alien(alien_number, row_number)
def run_game(): '''Space ship game''' ai_settings = Settings() screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Spaceship Game") ship = Ship(screen, ai_settings) stats = GameStats(ai_settings) bullets = Group() aliens = Group() alien = Alien(ai_settings, screen) play_button = Button(ai_settings, screen, 'Play') g_funcs.create_aliens_fleet(ai_settings, screen, alien, aliens, ship) while True: # Check keyboar d and mouse events g_funcs.check_events(ai_settings, screen, stats, play_button, alien, aliens, bullets, ship) if stats.game_active: # Update ship's position ship.update() # Update bullets g_funcs.update_bullets(ai_settings, screen, ship, alien, aliens, bullets) # Update aliens g_funcs.update_aliens(ai_settings, stats, screen, alien, aliens, bullets, ship) # Update screen g_funcs.update_screen(ai_settings, screen, stats, ship, bullets, aliens, play_button)
def create_fleet(gs, screen, ship, aliens): alien = Alien(gs, screen) numberaliens_x = get_num_x(gs, alien.rect.width) number_rows = get_num_rows(gs, ship.rect.height, alien.rect.height) for row_num in range(number_rows): for alien_num in range(numberaliens_x): create_alien(gs, screen, aliens, alien_num, row_num)
def number_of_rows(rocket, settings, screen): #get the height of the aliens alien = Alien(screen, settings) alien_height = alien.alien_height available_height = settings.screen_heigh - rocket.rocket_height - alien_height rows = int(available_height / (2 * alien_height)) #create abit more empty space rows = rows - 1 return rows
def create_fleet(ai_settings, screen, ship, aliens): alien = Alien(ai_settings, screen) number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width) number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) for row_number in range(number_rows): for alien_number in range(number_aliens_x): create_alien(ai_settings, screen, aliens, alien_number, row_number)
def create_fleet(ai_settings, screen, ship, aliens): alien = Alien(ai_settings, screen) alien_width = alien.rect.width number_alien_x = get_number_aliens_x(ai_settings, alien_width) number_row = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) for r in range(number_row): for i in range(number_alien_x): create_alien(ai_settings, screen, aliens, i, r)
def create_fleet(ai_settings, aliens, screen, ship): """创建舰队""" alien = Alien( ai_settings, screen) # 实例仅仅是为了向rows()函数传参alien.rect.height. 其实可以不这么写,参考行函数. number_aliens_x = get_number_aliens_x(ai_settings, screen) number_aliens_rows = get_number_aliens_row(ai_settings, alien.rect.height, ship) for i in range(number_aliens_x): for j in range(number_aliens_rows): create_alien(ai_settings, screen, aliens, i, j)
def get_number_aliens(settings, screen): #create an alien alien = Alien(screen, settings) #print(settings.screen_width) #print(type(settings)) alien_width = alien.alien_width screen_width = settings.screen_width #determine the number of aliens per row num_per_row = int(screen_width / (2 * alien_width)) to_loop = num_per_row - 1 return to_loop
def create_fleet(ai_settings, screen, ship, aliens): """Create a full fleet of aliens.""" # Create an alien, and find number of aliens in a row. alien = Alien(ai_settings, screen) number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width) number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) # Create the fleet of aliens. for row_number in range(number_rows): for alien_number in range(number_aliens_x): create_alien(ai_settings, screen, aliens, alien_number, row_number)
def create_fleet(ai_settings, screen, ship, aliens): '''createsa full fleet of aliens''' #create an alien and find the number of aliens in the row #spacing between each alien is one alien width alien = Alien(ai_settings, screen) number_aliensx = get_number_aliens_x(ai_settings, alien.rect.width) number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) #create rows of aliens for row_no in range(number_rows): for alien_number in range(number_aliensx): create_alien(ai_settings, screen, aliens, alien_number, row_no)
def _create_alien(self,alien_number,row_number): #create an alien and place it in the row alien=Alien(self) alien_width, alien_height=alien.rect.size '''we create a new alien and then set its x-coordinate value to place it in the row''' '''Each alien is pushed to the right one alien width from the left margin. Next, we multiply the alien width by 2 to account for the space each alien takes up,including the empty space to its right, and we multiply this amount by the alien’s position in the row.''' alien.x=alien_width+2*alien_width*alien_number #We use the alien’s x attribute to set the position of its rect. alien.rect.x=alien.x '''we place y-coordinate of an alien which is not in the 1st row by adding on alien height which creates a space on top of the 1st row''' '''the next row is found 2 alien heights from the previous height''' alien.rect.y=alien.rect.height+2*alien_height*row_number self.aliens.add(alien)
def create_fleet(game_settings, screen, space_ship, aliens): # create a full fleet of aliens alien = Alien(game_settings, screen) alien_width = alien.rect.width alien_height = alien.rect.height ship_height = space_ship.ship_rect.height number_of_aliens = int(get_alien_number(game_settings, alien_width)) number_of_rows = int( get_number_of_rows(game_settings, alien_height, ship_height)) for row_number in range(number_of_rows - 1): for alien_number in range(number_of_aliens): create_alien(game_settings, screen, alien_number, aliens, row_number)
def create_fleet(ai_settings, screen, ship, aliens): """Create a full fleet of aliens.""" # Create an alien and find the number of aliens in a row. # Spacing between each alien is equal to one alien width. alien = Alien(ai_settings, screen) number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width) number_rows = get_number_rows(ai_settings, ship.rect.height, alien.rect.height) # Create the first row of aliens for row_number in range(number_rows): for alien_number in range(number_aliens_x): # Create an alien and place it in the row. create_alien(ai_settings, screen, aliens, alien_number, row_number)
def _create_fleet(self): """Create the fleet of aliens""" #Create an alien and find the number of aliens in a row. alien = Alien(self) alien_width, alien_height = alien.rect.size available_space_x = self.settings.screen_width - (2 * alien_width) number_aliens_x = available_space_x // (2 * alien_width) #Determine the number of rows of aliens that fit on the screen ship_height = self.ship.rect.height available_space_y = self.settings.screen_height - (3 * alien_height - ship_height) number_rows = available_space_y // (2 * alien_height) #Create the fleet of aliens for row_number in range(number_rows): for alien_number in range(number_aliens_x): self._create_alien(alien_number, row_number)