def __init__(self, rect_dims, *groups): super().__init__(*groups) self.rect: pygame.Rect = pygame.Rect(rect_dims) self.image = pygame.Surface(self.rect.size) self.image.fill(Color('white')) self.mask: Mask = Mask((self.rect.width, self.rect.height), fill=True) self.dirty = 0 # will never be updated
def create_rectangular_mask(canvas_width, canvas_height, offset_x, offset_y, mask_width, mask_height): m = Mask((canvas_width, canvas_height)) for x in range(offset_x, offset_x + mask_width): for y in range(offset_y, offset_y + mask_height): m.set_at((x, y), 1) return m
def __init__(self, manager): State.__init__(self, manager) self.sprite = Sprite() self.sprite.image = Surface((0, 0)) self.sprite.rect = Rect(0, 0, 1, options.height) self.sprite.mask = Mask((1, options.height)) self.sprite.mask.fill() self.STATE_NUMBER = manager.DEACTIVATED
def shrink(self): self.height = max(self.height - self.shrink_rate, 0) #copy the existing noise, cropping off the top and bottom temp_image = Surface((self.width, self.height)) temp_image.blit(self.image, Rect(0, 0, 0, 0), Rect(0, self.crop_top, self.width, self.height)) self.image = temp_image self.mask = Mask((self.width, self.height)) self.mask.fill() self.top = self.top + self.crop_top self.rect = Rect(self.left, self.top, self.width, self.height)
def blit(self): """ If the shot should explode: Paint a blast! Otherwise, just do what any other shot would do. """ if self.counter >= self.__timeout: size = self.__timeout - self.counter rad = self.__radius - size pos = map(int, self.get_position()) rect = circle(self.surface, (255, 102, 0), pos, rad) self.rect = rect self.image = Surface((rect.width, rect.height)) self.mask = Mask((rect.width, rect.height)) self.mask.fill() # Everything in this mask is set else: super(Mine, self).blit()
def __init__(self, left, top, width, height, noise_width, noise_height, delay): Sprite.__init__(self) self.top = top self.left = left self.width = width self.height = height self.image = Surface((self.width, self.height)) self.rect = Rect(left, top, self.width, self.height) self.rect = Rect(left, top, 0, 0) self.mask = Mask((self.width, self.height)) self.mask.fill() self.noise_width = noise_width self.noise_height = noise_height self.tick = 0 self.delay = delay