X-Git-Url: https://git.ucc.asn.au/?p=progcomp2013.git;a=blobdiff_plain;f=qchess%2Fsrc%2Fgraphics.py;h=0097ec2e92173b794f25e470c9fa2d11fd314cd7;hp=041b137fd9cafc7d42f93d27f5b37aed7622b1ed;hb=545652c966aa156faa9301a709dc9ad565df4c9b;hpb=877034f05346e24fdf822f6e6149ad50d891f030 diff --git a/qchess/src/graphics.py b/qchess/src/graphics.py index 041b137..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,19 +52,25 @@ 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(): - if event.type == pygame.QUIT: + 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: game.final_result = "" @@ -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) + +