Пример #1
0
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)
Пример #2
0
    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()
Пример #3
0
 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);
Пример #4
0
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)
Пример #5
0
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()