def main(): # Init display & clock display = pygame.display.set_mode((800, 600), DOUBLEBUF) pygame.display.set_caption("Infinity Swarm") gem_list = ["amber", "amethyst", "emerald", "ruby", "sapphire", "topaz"] display_icon = pygame.transform.scale( pygame.image.load("assets/materials/" + random.choice(gem_list) + ".png"), (64, 64)) pygame.display.set_icon(display_icon) clock = pygame.time.Clock() # Player data holder player_data = PlayerData("Player") # Init screens screen_main = layouts.ScreenMain(display, player_data) screen_levelinfo = layouts.ScreenLevelInfo(display) screen_game = layouts.ScreenGame(display, player_data) current_screen = "main" screens = { "main": screen_main, "levelinfo": screen_levelinfo, "game": screen_game } frame = 0 loop = True while loop: caught_events = pygame.event.get() for event in caught_events: if event.type == pygame.QUIT: loop = False break frame = (frame + 1) % 60 if frame % 5 == 0: player_data.ccps_tick(12) cur_screen = screens[current_screen] upd_rects = cur_screen.update(caught_events) screen_switch = cur_screen.get_switch_screen() if screen_switch: current_screen = screen_switch screens[current_screen].init_screen(cur_screen) pygame.display.update(upd_rects) clock.tick(60)