""" game.initials - Use will be asked for initials """ import pygame from screens import initials_screen from .anykey import anykey class Initials(pygame.sprite.Group): """ Sprite group that asks initials to self.name from user """ def __init__(self): super().__init__() self.add(initials_screen("")) self.name = "" self.explode = False self.active = True self.fadeout = 1_000 def update(self, dt = 0, **kwargs): """ Does it all. Reads keyboard and updates screen """ if not self.active: return super().update(dt = dt, explode = self.explode, **kwargs) if self.explode: if self.fadeout <= 0: self.active = False else: if anykey(): self.fadeout = 0 self.active = False self.fadeout -= dt return for event in pygame.event.get(): if event.type == pygame.QUIT: self.explode = True break if event.type == pygame.KEYDOWN: if event.key in ( pygame.K_ESCAPE, pygame.K_KP_ENTER, pygame.K_RETURN): self.explode = True break if event.key in ( pygame.K_RSHIFT, pygame.K_LSHIFT, pygame.K_RCTRL, pygame.K_LCTRL, pygame.K_RALT, pygame.K_LALT, pygame.K_RMETA, pygame.K_LMETA, pygame.K_LSUPER, pygame.K_RSUPER, pygame.K_SPACE): continue if event.key in (pygame.K_BACKSPACE, pygame.K_DELETE): self.name = self.name [:-1] elif pygame.key.name(event.key): self.name += pygame.key.name(event.key)[0].upper() self.name = self.name[:3] self.empty() self.add(initials_screen(self.name))