summaryrefslogtreecommitdiff
path: root/src/sliceitoff/game/show.py
blob: 94e2540faff6cadb56431305c98623cca7468ccb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
""" Sprite group that show sprites and skips if key is pressed """
import pygame
from .anykey import anykey

class Show(pygame.sprite.Group):
    """ To show some sprites and quit on any key """
    def __init__(self, sprites = None, active = True):
        super().__init__()
        self.add(sprites)
        self.active = active
        self.explode = False
        self.fadeout = 1_000
        self.timeout = 15_000

    def update(self, dt = 0, **kwargs):
        """ First timeout then fadeout and then inactivity """
        super().update(dt = dt, explode = self.explode, **kwargs)
        if self.fadeout <= 0:
            self.active = False
        elif self.timeout <= 0:
            if anykey():
                self.fadeout = 0
            self.fadeout -= dt
            self.explode = True
        else:
            if anykey():
                self.timeout = 0
            self.timeout -= dt

    def sprites(self):
        """ Return sprites only when active """
        return super().sprites() if self.active else []