X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=qchess%2Fsrc%2Fgraphics.py;h=0097ec2e92173b794f25e470c9fa2d11fd314cd7;hb=8a1471b7bee654a02fc205dd4de7bebd12084435;hp=8d95db8c74223249cb2cafa074378cd5a1ee3534;hpb=5287b4f869be70ddae4b59a44c448be33f95ccda;p=progcomp2013.git diff --git a/qchess/src/graphics.py b/qchess/src/graphics.py index 8d95db8..0097ec2 100644 --- a/qchess/src/graphics.py +++ b/qchess/src/graphics.py @@ -1,9 +1,12 @@ graphics_enabled = True + try: import pygame + os.environ["SDL_VIDEO_ALLOW_SCREENSAVER"] = "1" except: graphics_enabled = False +import time @@ -24,6 +27,8 @@ class GraphicsThread(StoppableThread): self.error = 0 self.lock = threading.RLock() self.cond = threading.Condition() + self.sleep_timeout = None + self.last_event = time.time() #print "Test font" pygame.font.Font(os.path.join(os.path.curdir, "data", "DejaVuSans.ttf"), 32).render("Hello", True,(0,0,0)) @@ -47,18 +52,24 @@ class GraphicsThread(StoppableThread): while not self.stopped(): - #print "Display grid" - self.board.display_grid(window = self.window, grid_sz = self.grid_sz) # Draw the board + if self.sleep_timeout == None or (time.time() - self.last_event) < self.sleep_timeout: + + #print "Display grid" + self.board.display_grid(window = self.window, grid_sz = self.grid_sz) # Draw the board - #print "Display overlay" - self.overlay() + #print "Display overlay" + self.overlay() - #print "Display pieces" - self.board.display_pieces(window = self.window, grid_sz = self.grid_sz) # Draw the board + #print "Display pieces" + self.board.display_pieces(window = self.window, grid_sz = self.grid_sz) # Draw the board + + else: + self.window.fill((0,0,0)) pygame.display.flip() for event in pygame.event.get(): + self.last_event = time.time() if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_q): if isinstance(game, GameThread): with game.lock: @@ -71,8 +82,11 @@ class GraphicsThread(StoppableThread): break elif event.type == pygame.MOUSEBUTTONDOWN: self.mouse_down(event) + elif event.type == pygame.MOUSEBUTTONUP: - self.mouse_up(event) + self.mouse_up(event) + +