13 def __init__(self, main_time):
16 self._main_t = main_time
20 r_time = main_time - (time.time() - self._last + self._elapsed)
21 if (r_time - int(r_time)) < 0.75:
26 r_time = main_time - self._elapsed
30 return "{0:0>2}".format(int(r_time / 60)) + sep + "{0:0>2}".format(int(r_time % 60))
33 self._last = time.time()
36 self._elapsed += time.time() - self._last
45 parser = argparse.ArgumentParser(description=__doc__)
46 parser.add_argument('-m', type=int, default=45,
47 help="main time in minutes")
48 args = parser.parse_args()
52 pygame.display.set_mode((600, 100))
53 pygame.display.set_caption("Go timer")
54 screen = pygame.display.get_surface()
56 clock = pygame.time.Clock()
58 font = pygame.font.Font(pygame.font.match_font('monospace'), 80)
63 main_time = args.m * 60
65 timers = (Timer(main_time), Timer(main_time))
69 for event in pygame.event.get():
70 if event.type == pygame.QUIT:
72 elif event.type == pygame.KEYDOWN:
78 if timer.is_running():
83 screen.fill([0, 0, 0])
84 text1 = font.render(timers[0].get_time(), True, [128, 255, 128])
85 screen.blit(text1, [10, 10])
86 text2 = font.render(timers[1].get_time(), True, [128, 255, 128])
87 screen.blit(text2, [300, 10])