def create_fleet(ai_settings, screen, ship, aliens, bloods): """清除所有的血条""" for blood in bloods.sprites(): bloods.remove_internal(blood) for alien in aliens.sprites(): aliens.remove_internal(alien) for i in range(4): """创建一个外星人并将其放在当前行""" alien = Alien(ai_settings, screen) alien.position = "top" alien.rect.x = 100 * i + 320 alien.rect.y = 40 aliens.add(alien) blood1 = Blood(ai_settings, screen, alien) bloods.add(blood1) for i in range(3): """创建一个外星人并将其放在当前行""" alien1 = Alien(ai_settings, screen) alien1.position = 'left' alien1.rect.x = 0 alien1.y = alien1.rect.y = 50 * i + 90 aliens.add(alien1) alien2 = Alien(ai_settings, screen) alien2.position = "right" alien2.rect.x = ai_settings.screen_width - alien1.rect.width alien2.y = alien2.rect.y = 50 * i + 90 aliens.add(alien2) aliens.add(alien1) blood1 = Blood(ai_settings, screen, alien1) bloods.add(blood1) blood2 = Blood(ai_settings, screen, alien2) bloods.add(blood2)
def __init__(self, config_provider, disk, display, graphics): self.config_provider = config_provider self.disk = disk self.display = display self.graphics = graphics # clear log on disk self.disk.clear_log(self.config_provider.effects_save_to, EFFECTS_LOG_FILENAME) # foreground tracking self.foreground_tracking = None if self.config_provider.effects_foreground_tracking: self.foreground_tracking = ForegroundTracking() # colour tracking self.colour_tracking = None if self.config_provider.effects_colour_tracking: self.colour_tracking = ColourTracking() # fog self.fog = None if self.config_provider.effects_fog: self.fog = Fog() # blood self.blood = None if self.config_provider.effects_blood: self.blood = Blood()
def prep_bloods(self): """显示还剩多少血""" self.bloods=Group(); for number in range(self.status.peashooter_left): blood=Blood(self.ai_setting,self.screen); blood.rect.right=self.screen.get_rect().right-number*blood.rect.width; blood.rect.top=self.screen.get_rect().top; self.bloods.add(blood);
def create_boss(ai_settings, screen, aliens, bloods): """创建一个外星boss""" boss = Boss(ai_settings, screen) boss.x = random.randint(100, 500) boss.rect.x = boss.x boss.rect.y = 0 blood = Blood(ai_settings, screen, boss) bloods.add(blood) aliens.add(boss)
def start_screen(): global blood global my_font fade = False start = True alph = 0 alphaSurface = pygame.Surface( (500, 500)) # The custom-surface of the size of the screen. alphaSurface.fill( (255, 255, 255)) # Fill it with whole white before the main-loop. alphaSurface.set_alpha(0) blood_sprites = pygame.sprite.Group() from blood import Blood for i in range(3): bld = Blood() bld.rect.x = random.randrange(screen_width) random.randrange(screen_height) blood_sprites.add(bld) pygame.display.flip() #my intro while not fade: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() if pygame.time.get_ticks() > 1000 and not fade: fade = True else: screen.fill( (0, 0, 0)) # At each main-loop fill the whole screen with black. alph += 1 # Increment alpha by a really small value (To make it slower, try 0.01) alphaSurface.set_alpha( alph) # Set the incremented alpha-value to the custom surface. screen.blit( alphaSurface, (0, 0)) # Blit it to the screen-surface (Make them separate) pygame.display.flip() #stuff to put on start screen name = my_font.render("Created by Raymond Zhao", True, (0, 0, 0)) start_text = my_font.render("Start", True, RED) score_text = my_font.render("Top Score", True, RED) while start: screen.fill(WHITE) screen.blit(bg, (0, 0)) screen.blit(name, (0, 480)) screen.blit(start_text, (230, 240)) screen.blit(score_text, (210, 290)) screen.blit(boxpic, (100, 50)) #circle outline for buttons button = pygame.gfxdraw.aaellipse(screen, 250, 250, 50, 20, RED) sButton = pygame.gfxdraw.aaellipse(screen, 250, 300, 50, 20, RED) pos = pygame.mouse.get_pos() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() if event.type == pygame.MOUSEBUTTONUP: if pos[0] >= 200 and pos[0] <= 300: if pos[1] >= 230 and pos[1] <= 270: start = False game_loop() if pos[1] >= 276 and pos[1] <= 320: start = False show_scores() for blood in blood_sprites: screen.blit(blood.image, (blood.rect.x, blood.rect.y)) blood.update() pygame.display.flip() pygame.display.flip()