def createAlien(aiSettings, screen, aliens, alienNumber, rowNumber): alien = Alien(aiSettings, screen) alienWidth = alien.rect.width alien.x = alienWidth + 2 * alienWidth * alienNumber alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * rowNumber aliens.add(alien)
def create_an_alien(ai_settings, screen, aliens, row_num, column_num): alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * column_num alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_num aliens.add(alien)
class TestAlien(unittest.TestCase): def setUp(self): self.constraint = (1000, 1000) self.alien = Alien(self.constraint, 100, 100, Directions.left, 1) def test_init_no_params(self): alien = Alien(self.constraint) self.assertEqual(alien.x, 0) self.assertEqual(alien.direction, (1, 0)) self.assertEqual(alien.kind, 'blue') self.assertEqual(alien.health, 100) self.assertEqual(alien.image_size, 160) self.assertEqual(alien.radius, 65) def test_init(self): self.assertEqual(self.alien.x, 100) self.assertEqual(self.alien.y, 100) self.assertEqual(self.alien.direction, Directions.left) self.assertEqual(self.alien.kind, 'lion') def test_hit(self): previous_health = self.alien.health self.alien.hit(10) self.assertEqual(self.alien.health, previous_health - 10) def test_is_dead(self): self.assertFalse(self.alien.is_dead()) self.alien.health = 0 self.assertTrue(self.alien.is_dead())
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.check_type() alien_width = alien.rect.width alien.x = ai_settings.randomint alien.rect.x = alien.x if alien.randomint1 <= 1: alien.rect.y = 694.75 if alien.randomint1 >= 2 and alien.randomint1 < 4: alien.rect.y = 400 if alien.randomint1 >= 4: alien.rect.y =140 aliens.add(alien)
def alien_battle(): human = Human() alien = Alien() print("There is an human in front of you") action = input("What will you do run to ship or shot the human? (run / shoot): ") while alien.distance > 0 or human.health > 0 or alien.lifeForce > 0: if action == "run": alien.run() human.attack(human) elif action == "shoot": alien.alienAttack(human) human.attack(alien) if alien.distance == 0: print("You made it to the ship!") print("The Game is now over!") break elif human.health == 0: print("You killed the human!") print("The Game is now over!") break elif alien.lifeForce == 0: print("The human kills you!") print("The Game is now over!") break print("Distance to ship is: " + str(alien.distance) + " feet!") print("Human Life is: " + str(human.health)) print("Alien life is: " + str(alien.lifeForce)) action = input("What will you do run to bunker or shot the human? (run / shoot) ")
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.x = alien.rect.width+2*alien.rect.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(ai_settings,screen,aliens,alien_number,row_number): 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(ai_settings, screen, aliens, alien_number, row_number): """Utworzenie obcego i umieszczenie go w rzędzie.""" 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(ai_settings, screen, aliens, alien_number, row_number): """create an alien and place it in the row""" # 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) 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(ai_settings, screen, aliens, alien_number, row_number): # 创建一个外星人并将其加入当前行 alien = Alien(ai_settings,screen) alien_width = alien.rect.width # 算当前外星人的x alien.x = alien_width + alien_width * 2 * alien_number alien.rect.x = alien.x # 根据第几行 计算y 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) if alien_number == 0 or alien_number == 2 or alien_number == 4 or alien_number == 6 or alien_number == 8: alien.image = pygame.image.load('images/alien.bmp')
def create_fleet(ai_settings, screen, aliens): """Create a full of aliens.""" # Create a full fleet of aliens. # Spacing between each alien is equal to one alien width. alien = Alien(ai_settings, screen) alien_width = alien.rect.width available_space_x = ai_settings.screen_width - 2 * alien_width number_aliens_x = int(available_space_x/ (2 * alien_width)) # Create the first row of aliens. for alien_number in range(number_aliens_x): # Create an alien and place it in the row. alien = Alien(ai_settings, screen) alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x aliens.add(alien)
def create_fleet(ai_settings, screen, aliens): """创建外星人群""" # 创建一个外星人, 并计算一行可容纳多少个外星人 # 外星人间距为外星人宽度 alien = Alien(ai_settings, screen) alien_width = alien.rect.width available_space_x = ai_settings.screen_width - 2*alien_width number_aliens_x = int(available_space_x/(2*alien_width)) # 创建第一个外星人 for alien_number in range(number_aliens_x + 1): # 创建一个外星人并将其加入当前行 alien = Alien(ai_settings, screen) alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x aliens.add(alien)
def create_alien(settings, screen, aliens, index, row_number): alien = Alien(settings, screen) alien.x = alien.rect.width + 0 if index == 0 else 1 * alien.rect.width * index alien.rect.x = alien.x alien.rect.y = alien.rect.height + 1 * alien.rect.height * row_number aliens.add(alien)
def create_alien(settings, screen, alien_number, aliens): alien = Alien(settings, screen) alien.x = alien.rect.width + 2 * alien.rect.width * alien_number alien.rect.x = alien.x aliens.add(alien)
def create_alien(ai_settings, screen, aliens, alien_number): alien = Alien(ai_settings, screen) alien_width = alien.rect.width alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x aliens.add(alien)
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_aliens(ai_settings,screen,aliens,alien_number,row_number) def check_fleet_edges(ai_settings,aliens): """有外星人到达边缘时采取相应措施""" for alien in aliens.sprites(): if alien.check_edges(): change_fleet_direction(ai_settings,aliens) break def change_fleet_direction(ai_settings,aliens): """将整群外星人下移,并改变他们的运动方向""" for alien in aliens.sprites(): alien.rect.y += ai_settings.fleet_drop_speed ai_settings.fleet_direction *= -1 def ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets): """响应被外星人撞到的飞船""" if stats.ships_left > 0: #将ship_left减1 stats.ships_left -= 1 #更新记分牌 sb.prep_ships() #清空外星人列表和子弹列表 aliens.empty() bullets.empty() #创建一群新的外星人,并将飞船放到屏幕低端中央 create_fleet(ai_settings,screen,ship,aliens) ship.center_ship() #暂停 sleep(0.5) else: stats.game_active = False pygame.mouse.set_visible(True) def check_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets): """检查是否有外星人到达屏幕低端""" screen_rect = screen.get_rect() for alien in aliens.sprites(): if alien.rect.bottom >= screen_rect.bottom: #像飞船被撞到一样进行处理 ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets) break def update_aliens(ai_settings,stats,screen,sb,ship,aliens,bullets): """更新外星人群中所有外星人的位置""" check_fleet_edges(ai_settings,aliens) aliens.update() #检测外星人和飞船之间的碰撞 if pygame.sprite.spritecollideany(ship,aliens): ship_hit(ai_settings,stats,screen,sb,ship,aliens,bullets) #检查是否有外星人到达屏幕低端 check_aliens_bottom(ai_settings,stats,screen,sb,ship,aliens,bullets) def check_high_score(stats,sb): """检查是否诞生了新的最高纪录""" if stats.score > stats.high_score: stats.high_score = stats.score sb.prep_high_score()
def get_number_aliens_x(settings, screen): alien = Alien(settings, screen) alien_width = alien.rect.width avaliable_space_x = settings.screen_width - 2 * alien_width number_aliens_x = int(avaliable_space_x / (2 * alien_width)) return number_aliens_x
def _creat_fleet(self): if self.status.level % 10 == 0: #print(self.status.level) self.alien_boss.reset() boss = self.alien_boss self.aliens.add(boss) self.isboss_flag = True return new_ufo = Alien(self) new_ufo_width = new_ufo.rect.width new_ufo_height = new_ufo.rect.height available_space_x = self.settings.width - new_ufo_width * 2 available_space_y = self.settings.height - new_ufo_height * 2 - self.ship.height * 3 numbers_ufo_x = available_space_x // (2 * new_ufo_width) numbers_ufo_y = int( (available_space_y - self.ship.rect.height) / (2 * new_ufo_height)) for j in range(numbers_ufo_y): for i in range(numbers_ufo_x): ufo = Alien(self) #创建一排ufo if self.status.level < 10: if random.random() > self.status.level / 10: ufo.set_contribution() else: ufo.set_contribution(2) else: if random.random() > (self.status.level - 10) / 10: ufo.set_contribution(2) else: ufo.set_contribution(3) ufo.rect.x = (1 + i * 2) * new_ufo_width ufo.x = ufo.rect.x ufo.rect.y = (2 * j) * new_ufo_height ufo.y = ufo.rect.y self.aliens.add(ufo) #end
def _create_alien(self): """Creating an alien""" for alien in range(9): alien = Alien(self) self.aliens.add(alien)
def create_alien(ai_settings,screen,aliens,alien_number,number_rows,alien_height,alien_width): alien=Alien(ai_settings,screen) alien.rect.x=alien_width+2*alien_width*alien_number alien.rect.y=alien_height+alien_height*2*number_rows aliens.add(alien)
def get_num_aliens(ai_settings, screen): alien_width = Alien(ai_settings).rect.width available_screen_width = ai_settings.screen_width - (2 * alien_width) return int(available_screen_width / (2 * alien_width))
def _create_fleet(self): """Create the 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(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 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): # Create an alien and place it in the row. self._create_alien(alien_number, row_number) 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 _update_aliens(self): """Check if the fleet is at an edge, then update the positions of all aliens in the fleet.""" self._check_fleet_edges() self.aliens.update() #Look for alien-ship collisions. if pygame.sprite.spritecollideany(self.ship, self.aliens): self._ship_hit() #Look for aliens hitting the bottom of the screen. self._check_aliens_bottom() def _ship_hit(self): """Respond to the ship being hit by an alien.""" if self.stats.ships_left > 0: # Decrement ships_left, and update scoreboard. self.stats.ships_left -=1 self.sb.prep_ships() #Get rid of any remaining aliens and bullets. self.aliens.empty() self.bullets.empty() #Create a new fleet and center the ship. self._create_fleet() self.ship.center_ship() #pause sleep(0.5) else: self.stats.game_active = False pygame.mouse.set_visible(True) def _check_fleet_edges(self): """Respond appropriately if any aliens have reached an edge.""" for alien in self.aliens.sprites(): if alien.check_edges(): self._change_fleet_direction() break def _change_fleet_direction(self): """Drop the entire fleet and change the fleet's direction.""" for alien in self.aliens.sprites(): alien.rect.y += self.settings.fleet_drop_speed self.settings.fleet_direction *= -1 def _check_aliens_bottom(self): """Check if any aliens have rached the bottom of the screen.""" screen_rect = self.screen.get_rect() for alien in self.aliens.sprites(): if alien.rect.bottom >= screen_rect.bottom: # Treat this the same as if the ship got hit. self._ship_hit() break
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) alien_width = alien.rect.alien_width number_rows = get_number_rows(ai_settings,ship.rect.height,alien.rect.height)
def _update_bullets(self): self.bullets.update() for bullet in self.bullets.copy(): if bullet.rect.bottom <= 0: self.bullets.remove(bullet) def _create_fleet(self): alien = Alien(self) alien_width = alien.rect.width available_space_x = self.settings.screen_width - (2 * alien_width) number_aliens_x = available_space_x // (2 * alien_width) for alien_number in range(number_aliens_x): self._create_alien(alien_number) def _create_alien(self, alien_number) alien = Alien(self) alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x self.aliens.add(alien) def _update_screen(self): self.screen.fill(self.settings.bg_color) self.ship.blitme() for bullet in self.bullets.sprites(): bullet.draw_bullet() self.aliens.draw(self.screen) pygame.display.flip() if __name__ == '__main__': ai = AlienInvasion()
def create_fleet(ai_settings, screen, aliens): #创建外星人群 for alien_number in range(random.randint(1, 10)): alien = Alien(ai_settings, screen) aliens.add(alien)
def get_aliens(aliens, number): for n in range(number): if len(aliens) <= s.alien_sum: aliens.add(Alien())
def run_game(): """used this to create a pyhton game window and respond to user interface""" # initialize game and create a screen object pygame.init() ai_settings = Settings() #earlier we passed the dimensions of the screen size directly but now we will pass the dimensions variable # in which the dimension is stored in another file screen = pygame.display.set_mode( (ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") play_button = Button(ai_settings, screen, "Play") #we create a play button and pass it further to update screen #create an instance to store game statistics. stats = GameStats(ai_settings) #creating an instance to store game statistics and create a scoreboard sb = Scoreboard(ai_settings, screen, stats) bg_color = (230, 230, 230) #making a ship ship = Ship(ai_settings, screen) #make a group to store bullets in. it is masde outside the loop # so that each time new group is not created and the program does # not becomes slow bullets = Group() #make a group of aliens aliens = Group() #create a fleet of aliens. gf.create_fleet(ai_settings, screen, ship, aliens) #earlier we passed the value of the color from here directly but now we have created a variable for that # which store the color in it in the file settings #makes the ALIENS alien = Alien(ai_settings, screen) # start main loop for the game while True: # earlier the watch for mouse and key events was from here but # now we have created another module for that gf.check_events(ai_settings, screen, stats, sb, play_button, ship, aliens, bullets) if stats.game_active: #this loop is used when we want the code to run only when # game is active i.e. the user has ships remaining with him ship.update() gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens, bullets) # did above code to make main file minimalistic gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets) # updating the position of each alien along with passing the # parameter for finding it the alien is at the edge # all the arguments in the update_aliens above will be used to # track the no. of ships left with the player once alien hits the ship gf.update_screen(ai_settings, screen, stats, sb, ship, aliens, bullets, play_button) #it contains the attributes which will be updated along with the screen #redraws the screen through each pass through of the loop #meaning it will fill the screen using the function used in the next line of code #we have now passed the variable for the color rather than passing the color screen.fill(ai_settings.bg_color) ship.blitme() #used to draw the loaded ship on the foreground once the background has been drawn alien.blitme() #used to draw the loaded alien on the foreground once the background has been loaded # make the most recently drawn screen visible. pygame.display.flip()
def _create_fleet(self): """create thefleet of aliens.""" # make an alien alien = Alien(self) self.aliens.add(alien)
def create_alien(setting , screen , aliens , alien_num , alien_width , row_number): alien = Alien(setting , screen) alien.x = alien_width + 2 * alien_width * alien_num alien.rect.x = alien.x alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number aliens.add(alien)
def game(): hallabol = False merinaav = meraantrikshyaan(310, 660, 80, 30) bullets = [] bullets2 = [] num_bullet = 0 num_bullet2 =0 for i in range(num_bullet2): i = missile2(345,650) bullets2.append(i) for i in range(num_bullet): i = missile(345, 650) bullets.append(i) x_move = 0 aliens = [] kitnealienthe = random.randint(1,9) global outputaliens outputaliens = kitnealienthe for i in range(1): tmp = random.randint(0,5) ali = Alien((tmp+1)*50 + tmp*20,70, 50) aliens.append(ali) while not hallabol: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: GameOver() pygame.display.update() time.sleep(5) hallabol = True if event.key == pygame.K_d: x_move = 8 if event.key == pygame.K_a: x_move = -8 if event.key == pygame.K_SPACE: num_bullet += 1 i = missile(merinaav.x + 35, merinaav.y) bullets.append(i) if event.key == pygame.K_s: num_bullet2 +=1 i = missile2(merinaav.x + 35, merinaav.y) bullets2.append(i) if event.type == pygame.KEYUP: x_move = 0 display.fill((8,8,8)) for i in range(num_bullet): bullets[i].draw() bullets[i].move() for i in range(num_bullet2): bullets2[i].draw() bullets2[i].move() for alien in aliens: if alien.willdie == 0: alien.draw() else: alien.draw2() for item in bullets: if item.hit(alien.x, alien.y, alien.d): bullets.remove(item) num_bullet -= 1 global hit hit +=1 # print 'hitting' aliens.remove(alien) kitnealienthe -= 1 for item in bullets2: if item.hit(alien.x, alien.y, alien.d): bullets2.remove(item) num_bullet2 -= 1 alien.dieinfive() alien.draw2() # print 'hitting' isincrement=alien.visitonlyonce() if isincrement: hit += 1 # kitnealienthe -= 1 #added at last toh check pehle for alien in aliens: canikill = alien.iskillalien() if canikill: kitnealienthe -= 1 aliens.remove(alien) # print 'hitting' # hit+=1 checkche = check() if checkche: tmp = random.randint(0,5) ali = Alien((tmp+1)*50 + tmp*20,70, 50) aliens.append(ali) kitnealienthe += 1 merinaav.x += x_move if merinaav.x < 0: merinaav.x -= x_move if merinaav.x + 80 > 700: merinaav.x -= x_move merinaav.draw() pygame.display.update() clock.tick(60)
def _create_fleet(self): alien = Alien(self) self.aliens.add(alien)
def _create_alien(self, alien_number): alien = Alien(self) alien_width = alien.rect.width alien.x = (alien_number * alien_width * 2) + alien_width alien.rect.x = alien.x self.aliens.add(alien)
def generator(ai_settings, screen): alien = Alien(ai_settings, screen) number_aliens_x = get_number_aliens_x(ai_settings, alien.rect.width) return randint(-number_aliens_x, number_aliens_x)
def _spawn_enemy(self): """Spawns enemies randomly from the right side of the screen""" alien = Alien(self) alien_width = alien.rect.width alien.x = self.screen_width self.aliens.add(alien)
def create_alien(ai_settings, screen, aliens): alien = Alien(ai_settings, screen) alien.x = random.choice(range(200, 300, 30)) alien.rect.x = alien.x aliens.add(alien)
def _create_fleet(self): """Create the fleet of alien ships.""" # Make an alien. alien = Alien(self) self.aliens.add(alien)
def setUp(self): self.constraint = (1000, 1000) self.alien = Alien(self.constraint, 100, 100, Directions.left, 1)
def create_fleet(ai_settings,screen,stats,aliens): '''创建外星人群''' alien = Alien(ai_settings,screen) aliens.add(alien) stats.generate_alien_number += 1
def create_alien(ai_settings, screen, alien_number, alien_width): alien = Alien(ai_settings, screen, ai_settings.sideways_shooter) alien.x = (alien_number * 2 * alien_width) + alien_width alien.rect.x = alien.x return alien
def _create_alien(self, alien_numbers, rows): alien = Alien(self) alien_width, alien_height = alien.rect.size alien.rect.x = alien.x = alien_width + 2 * alien_width * alien_numbers alien.rect.y = alien.rect.height + 2 * alien_height * rows self.aliens.add(alien)
def loop(self): count = 0 while 1: count = (count+1)%50 self.clock.tick(25) #handle input events ok = self.handle_keys() if ok == False: return if self.game_started == False: start_text = self.font.render('Press any key to start', 2, (0,0,0)) self.screen.blit(start_text, (150, 200)) pygame.display.flip() continue if self.game_paused == 1: start_text = self.font.render('Game paused', 2, (255,255,255)) self.screen.blit(start_text, (150, 200)) pygame.display.flip() continue new_enemies = self.level.getenemies() for enemy_y in new_enemies: #if random.randint(0,50) == 0: alien = Alien(enemy_y) alien.set_target(self.ship) self.enemies.add(alien) #aliens damaging the player, remove them damage = pygame.sprite.spritecollide(self.ship, self.enemies, True) self.process_powerups() #check colisions with stage if self.level.checkcollide(self.ship.rect): #add some fancy explosions in the damage area self.explosions.add(Explosion(pygame.Rect(self.ship.rect.x,self.ship.rect.y,0,0))) damage.append(1) #Apply damages to the player if len(damage) > 0: self.background.warning() self.ship.damage() self.lifemeter.shake() self.explosions.add(Explosion(self.ship.rect)) self.sounds['warning'].play() self.lifemeter.life = self.ship.life if self.lifemeter.life < 1: self.game_finished = True self.sounds['warning'].stop() #print (pygame.sprite.spritecollide(ship, level, True)) #aliens hit by the fire, remove them penetration = self.ship.powerup['penetrate'] for fireball in self.fire: hit = pygame.sprite.spritecollide(fireball, self.enemies, True) for dead in hit: if dead.has_powerup(): powerup = Powerup(dead.rect, dead.value) self.powerups.add(powerup) self.explosions.add(Explosion(pygame.Rect(dead.rect.x,dead.rect.y,0,0))) self.score+=dead.value*1000 if penetration == False: fireball.kill() #draw the level all_sprites = pygame.sprite.Group() all_sprites.add(self.player.sprites()) all_sprites.add(self.enemies.sprites()) all_sprites.add(self.powerups.sprites()) all_sprites.add(self.fire.sprites()) all_sprites.add(self.hud.sprites()) all_sprites.add(self.explosions.sprites()) all_sprites.update() self.level.update() self.background.update() #Move and draw the background score_text = 'Score: {0}'.format((self.score)) text = self.font.render(score_text, 1, (255, 255, 255)) text_shadow = self.font.render(score_text, 1, (0,0,0)) self.screen.blit(self.background, (0, 0)) self.screen.blit(self.level, (0, 0)) self.screen.blit(text_shadow, (12, 12)) self.screen.blit(text, (10, 10)) if self.game_finished == True: gameover_text = self.font.render("Game Over", 2, (255, 255, 255)) self.screen.blit(gameover_text, (280, 200)) gameover_text = self.font.render("Press Esc", 2, (255, 255, 255)) self.screen.blit(gameover_text, (280, 230)) else: all_sprites.draw(self.screen) #draw all the groups of sprites pygame.display.flip()
def _create_alien(self, alien_number): alien = Alien(self) alien.x = alien_width + 2 * alien_width * alien_number alien.rect.x = alien.x self.aliens.add(alien)
def get_num_rows(ai_settings, ship_height): alien_height = Alien(ai_settings).rect.height avail_screen_height = (ai_settings.screen_height - (ship_height + alien_height * 3)) return int(avail_screen_height / (alien_height * 2))
def get_number_aliens_x(setting, screen): alien = Alien(setting, screen) alien_border = alien.rect.width * 2 alien_space = setting.screen_width - alien_border alien_number = int(alien_space / (2 * alien.rect.width)) return alien_number