Пример #1
0
    def __init__(self, scr, view_point, explosions, track):
        """Input parameters:
        scr - Surface for drawing;
        view_point - ViewPoint class instance;
        explosions - Explosions class instance for asteroid blowing;
        track - Track class instance (needed for spawning)."""
        self.scr = scr
        self.view_pt = view_point
        self.explosions = explosions
        self.track = track
        self.spawn_density = 0
        # Format: [(center_x, center_y),...]
        self.spawns = []
        self.images = []
        self.masks = []
        for filename in ASTEROID_FILES:
            image = pygame.image.load(f"img/{filename}")
            self.images.append(image)

            # Creating bitmasks for each frame of each asteroid image
            asteroid = AnimatedSprite(image, self.scr, self.view_pt,
                                      FRAME_COLS, FRAME_ROWS)
            asteroid_masks = []
            for frame in range(0, asteroid.get_max_frame() + 1):
                mask_image = pygame.Surface(asteroid.rect.size,
                                            pygame.SRCALPHA, image)
                mask_image.fill((0, 0, 0, 0))
                mask_image.blit(image, (0, 0), asteroid._get_frame_rect(frame))
                asteroid_masks.append(pygame.mask.from_surface(mask_image))
            self.masks.append(asteroid_masks)

        self.items = pygame.sprite.Group()