from .fonts import * from .colors import * import pygame import math MAX_COUNT = 9 class Athmos: def __init__(self, screen): self.index = 0 self.filenames = [] self.screen = screen self.show_list = True self.surface = pygame.Surface((0,0), pygame.SRCALPHA) def set_filenames(self,filenames): self.filenames = filenames self.surface = pygame.Surface( (self.screen.get_width()*2/3, self.get_display_count()*40), pygame.SRCALPHA) def get_display_count(self): return min(MAX_COUNT, len(self.filenames)) def update(self): if self.show_list: self.surface.fill("black") for i in range(self.get_display_count()): text = self.filenames[(i-self.index-math.floor(self.get_display_count()/2))%len(self.filenames)] if i == math.floor(self.get_display_count()/2): text_surface = font_helvetica16.render(text, False, "black", color_primary_light) else: text_surface = font_helvetica16.render(text, False, color_primary_light) opacity = math.floor((i+1) * 2 * 255 / MAX_COUNT if i < MAX_COUNT/2 else (MAX_COUNT-i) * 2 * 255 / MAX_COUNT) text_surface.set_alpha(opacity) self.surface.blit(text_surface, ((0, self.surface.get_height()/self.get_display_count()*i))) self.screen.blit(self.surface, (self.screen.get_width()/3, (self.screen.get_height() - self.surface.get_height())/2))