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()