pybeamshow/effects/effect.py
2023-02-23 00:19:20 +01:00

28 lines
742 B
Python

from typing import Optional
import pygame as pg
from util.transform import PositionGenerator, transform_static
class Effect(pg.sprite.Sprite):
def __init__(
self, image: pg.Surface, rect: pg.Rect, *groups: pg.sprite.Group
) -> None:
super().__init__(*groups)
self.rect = rect
self.image = image
def draw(self, surface: pg.Surface):
surface.blit(self.image, self.rect)
class MovingEffect(Effect):
def __init__(
self,
image: pg.Surface,
rect: pg.Rect,
mover: Optional[PositionGenerator] = None,
*groups: pg.sprite.Group
) -> None:
super().__init__(image, rect, *groups)
self.mover = mover or transform_static(rect.center)