Train your typing using Typemania! A aesthetic typing test.
at main 3.6 kB view raw
1import pygame 2from .modules.options.fps import fps 3 4class options: 5 6 def __init__(self, game): 7 self.game = game 8 9 self.open = False 10 11 self.show_fps = False 12 13 self.fps_module = fps(game) 14 15 self.menu_id = 0 16 17 self.marker_target_y = 200 + (self.menu_id * 70) 18 self.marker_y = self.marker_target_y 19 20 self.marker_x = 90 21 22 self.show_fps_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.show_fps") + ": " + str(self.show_fps), True, (self.game.color_handler.get_color_rgb("typemania.text"))) 23 self.reset_save_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.reset_save"), True, (self.game.color_handler.get_color_rgb("typemania.text"))) 24 25 self.marker_target_width = self.show_fps_text_surface.get_width() + 20 26 self.marker_width = self.marker_target_width 27 28 self.bg_target_x = -1000 29 self.bg_x = self.bg_target_x 30 31 def update(self): 32 self.bg_x += (self.bg_target_x - self.bg_x) / 10 33 if self.open: 34 self.bg_target_x = 5 35 self.game.input.input_state = "options" 36 if self.game.input.is_pressed("esc"): 37 self.open = False 38 39 if self.game.input.is_just_pressed("DOWN"): 40 self.menu_id += 1 41 if self.game.input.is_just_pressed("UP"): 42 self.menu_id -= 1 43 44 self.show_fps_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.show_fps") + ": " + str(self.show_fps), True, (self.game.color_handler.get_color_rgb("typemania.text"))) 45 46 self.marker_target_y = 270 + (self.menu_id * 140) - 25 47 self.marker_y += (self.marker_target_y - self.marker_y) / 8 48 self.marker_width += (self.marker_target_width - self.marker_width) / 20 49 50 if self.menu_id < 0: 51 self.menu_id = 1 52 if self.menu_id > 1: 53 self.menu_id = 0 54 55 if self.menu_id == 0: 56 self.marker_target_width = self.show_fps_text_surface.get_width() + 20 57 if self.menu_id == 1: 58 self.marker_target_width = self.reset_save_text_surface.get_width() + 20 59 60 if self.game.input.is_just_pressed("SPACE") or self.game.input.is_just_pressed("RETURN"): 61 if self.menu_id == 0: 62 self.show_fps = not self.show_fps 63 if self.menu_id == 1: 64 self.game.typemania.save_file = {"all_plays": []} 65 self.game.notification_handler.send("Save File Reset", "Typemania save file has been reset from the options menu.") 66 67 else: 68 self.game.input.input_state = "game" 69 self.bg_target_x = -1000 70 71 if self.game.input.is_pressed("ctrl") and self.game.input.is_just_pressed("o"): 72 self.open = not self.open 73 74 def render(self): 75 pygame.draw.rect(self.game.main_surface, self.game.color_handler.get_color_rgb("options.background"), ((self.bg_x, 5), (500, self.game.display_height - 10)), False, 5) 76 77 if self.open: 78 pygame.draw.rect(self.game.main_surface, self.game.color_handler.get_color_rgb("typemania.marker"), ((self.marker_x, self.marker_y), (self.marker_width, 5)), False, 5) 79 80 self.game.main_surface.blit(self.show_fps_text_surface, (100, 200)) 81 self.game.main_surface.blit(self.reset_save_text_surface, (100, 340))