From: Tomas Musil Date: Tue, 4 Sep 2012 17:05:55 +0000 (+0200) Subject: timer X-Git-Url: http://git.tomasm.cz/imago.git/commitdiff_plain/702d0af1ff46776307fd8792e39bdd7c9f8273a9?ds=sidebyside timer --- diff --git a/timer.py b/timer.py new file mode 100755 index 0000000..e1e247b --- /dev/null +++ b/timer.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +"""Go timer""" + +import os +import sys +import time +import argparse + +import pygame + +class Timer: + def __init__(self): + self._last = 0 + self._elapsed = 0. + + def get_time(self): + if self._last > 0: + return time.time() - self._last + self._elapsed + else: + return self._elapsed + + def start(self): + self._last = time.time() + + def stop(self): + self._elapsed += time.time() - self._last + self._last = 0 + + def is_running(self): + if self._last > 0: + return True + else: + return False + +pygame.init() +pygame.display.set_mode((400, 100)) +pygame.display.set_caption("Go timer") +screen = pygame.display.get_surface() + +clock = pygame.time.Clock() + +font = pygame.font.Font(None, 50) + +done = False +first = True + +timers = (Timer(), Timer()) + +while not done: + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + done = True + elif event.type == pygame.KEYDOWN: + if first: + timers[0].start() + first = False + continue + for timer in timers: + if timer.is_running(): + timer.stop() + else: + timer.start() + + screen.fill([0, 0, 0]) + text1 = font.render("{0:>6.2f}".format(timers[0].get_time()), True, [128, 255, 128]) + screen.blit(text1, [10, 10]) + text2 = font.render("{0:>6.2f}".format(timers[1].get_time()), True, [128, 255, 128]) + screen.blit(text2, [200, 10]) + pygame.display.flip() + clock.tick(15)