Home | Code/Games | About me |
---|
a python executable timer for the 20 20 20 rule
download
The code:
import pygame, sys pygame.init() window_size = [200, 100] screen = pygame.display.set_mode(window_size) pygame.display.set_caption("20 20 20 rule") icon = pygame.image.load("data/icon.png") pygame.display.set_icon(icon) clock = pygame.time.Clock() def write(font_path: str, font_size, text: str, antialias: bool, color: str, surface, pos=(0, 0)): font = pygame.font.Font(font_path, font_size) rendered_text = font.render(text, antialias, color) rendered_text_rect = rendered_text.get_rect(center = (pos)) surface.blit(rendered_text, rendered_text_rect) def mins(): time = 1200 pygame.mixer.music.load('data/alarm_sound.mp3') while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() screen.fill("black") if len(str(int(divmod((time), 60)[1]))) > 1: write(None, 50, f'{int(divmod((time), 60)[0])}:{int(divmod((time), 60)[1])}', True, "cyan", screen, (window_size[0] / 2, window_size[1] / 2)) else: write(None, 50, f'{int(divmod((time), 60)[0])}:0{int(divmod((time), 60)[1])}', True, "cyan", screen, (window_size[0] / 2, window_size[1] / 2)) if time > 0: time -= 1 if time <= 0: pygame.mixer.music.play() secs() pygame.display.flip() clock.tick(1) def secs(): time = 20 while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() screen.fill("black") write(None, 50, f'{time}', True, "cyan", screen, (window_size[0] / 2, window_size[1] / 2)) if time > 0: time -= 1 if time <= 0: mins() pygame.display.flip() clock.tick(1) mins()