Space_recycling_game / src /effects.py
Antoni09's picture
Upload game files
c02cd3b verified
Raw
History Blame Contribute Delete
998 Bytes
from __future__ import annotations
import pygame
class Explosion(pygame.sprite.Sprite):
def __init__(self, pos: tuple[float, float], frames: list[pygame.Surface], frame_time: float = 0.06):
super().__init__()
self.frames = frames
self.frame_time = float(frame_time)
self.t = 0.0
self.idx = 0
self.image = self.frames[0] if self.frames else pygame.Surface((1, 1), pygame.SRCALPHA)
self.rect = self.image.get_rect(center=pos)
self.pos = pygame.Vector2(pos)
def update(self, dt: float):
if not self.frames:
self.kill()
return
self.t += dt
while self.t >= self.frame_time:
self.t -= self.frame_time
self.idx += 1
if self.idx >= len(self.frames):
self.kill()
return
center = self.rect.center
self.image = self.frames[self.idx]
self.rect = self.image.get_rect(center=center)