import os import pygame from display import Scaling from images import Images, Fonts from stats import Stats class LetterSprite(pygame.sprite.Sprite): def __init__(self, image, pos): super().__init__() self.image = image self.rect = self.image.get_rect().move(pos) class TextGroup(pygame.sprite.Group): def __init__(self, text, pos, size = 8_000, spacing = None, font = 'lcd'): super().__init__() if spacing == None: spacing = size for i in range(len(text)): image = pygame.transform.scale_by( Fonts.fonts[font].get(text[i]), size/8 * Scaling.factor) image_pos = Scaling.scale_to_display( (pos[0]+i*spacing, pos[1]) ) self.add(LetterSprite(image, image_pos)) class Status(): def __init__(self): self.sprites = pygame.sprite.Group() def update(self, dt): """ Update sprites basis of dt. dt = milliseconds from last update """ score_str = ( "{:02d}\x12 {:02d}\xfe {:02d}\x03 " "{:02d}\x0e {:08d}\x0f").format( Stats.level, 99 if Stats.percent == 100 else int(Stats.percent), Stats.lives, Stats.bonus // 1000, Stats.score) self.sprites = TextGroup( score_str, (0, 282_000), size = 16_000, font = '8x8')