class Game: ''' Main game class ''' def __init__ (self): pygame.init() pygame.key.set_repeat(10,10) res = ConfigManager.get("resolution") self.screen = pygame.display.set_mode(res, pygame.DOUBLEBUF) self.ball = Ball() self.space = Space(res) def catchUserInput(self): for e in pygame.event.get(): if e.type == pygame.QUIT: pygame.quit() exit() elif e.type == pygame.KEYDOWN: if e.key == pygame.K_ESCAPE: pygame.quit() exit() elif e.key == pygame.K_DOWN: self.ball.decreaseSpeed() elif e.key == pygame.K_UP: self.ball.increaseSpeed() elif e.key == pygame.K_LEFT: self.ball.moveLeft() elif e.key == pygame.K_RIGHT: self.ball.moveRight() def updateGameState(self): self.ball.updateState() def updateDisplay(self): self.screen.fill(BLACK) self.screen.blit(self.space, self.space.rect) self.screen.blit(self.ball.image, self.ball.rect) if __debug__: #print "Debug mode: Draw sprite's rects" pygame.draw.rect(self.screen, WHITE, self.ball.rect, 1) #print "Debug mode: Draw statistics" font = pygame.font.Font(None, 24) speedMsg = "Spaceship speed: " + str(self.ball.speed) posMsg = "Spaceship position: " + str(self.ball.rect) textS = font.render(speedMsg, 1, GREEN) textP = font.render(posMsg, 1, GREEN) self.screen.blit(textS, (10,10)) self.screen.blit(textP, (10,25)) pygame.display.flip() pygame.time.wait(1000 / 60) def run(self): while True: self.catchUserInput() self.updateGameState() self.updateDisplay()