def game(self): self._pygame.init() # display screen = self._pygame.display.set_mode((640,480)) self._pygame.display.set_caption("game screen") background = self._pygame.Surface(screen.get_size()) background = background.convert() background.fill((255, 255, 0)) # map initialization self._game_map = Capmap() self._game_map.useDefaultMap() # create node surfaces for node in self._game_map.getNodes(): n = GameNode(node) n.createSurface((139, 137, 137)) self._game_nodes.append(n) num_nodes = len(self._game_nodes) # generate paths (between nodes) paths = self.createPaths(self._game_nodes) # draw paths for path in paths: print "path: ", path[0], path[1] self._pygame.draw.line(background, (0, 0, 0), path[0], path[1], 5) # render background and paths screen.blit(background, (0,0)) # game loop game_alive = True clock = self._pygame.time.Clock() while game_alive: clock.tick(30) for event in self._pygame.event.get(): # exit game triggered (exits game) if event.type == self._pygame.QUIT: game_alive = False self._pygame.quit() raise SystemExit """ draw all objects in following order: - nodes - active troops """ for node in self._game_nodes: screen.blit(node.getSurface(), (node.getX(), node.getY())) self._pygame.display.flip()
class GraphCapture(): def __init__(self, pygameModule): self._game_map = None self._game_nodes = [] self._num_nodes = 0 self._pygame = pygameModule def game(self): self._pygame.init() # display screen = self._pygame.display.set_mode((640,480)) self._pygame.display.set_caption("game screen") background = self._pygame.Surface(screen.get_size()) background = background.convert() background.fill((255, 255, 0)) # map initialization self._game_map = Capmap() self._game_map.useDefaultMap() # create node surfaces for node in self._game_map.getNodes(): n = GameNode(node) n.createSurface((139, 137, 137)) self._game_nodes.append(n) num_nodes = len(self._game_nodes) # generate paths (between nodes) paths = self.createPaths(self._game_nodes) # draw paths for path in paths: print "path: ", path[0], path[1] self._pygame.draw.line(background, (0, 0, 0), path[0], path[1], 5) # render background and paths screen.blit(background, (0,0)) # game loop game_alive = True clock = self._pygame.time.Clock() while game_alive: clock.tick(30) for event in self._pygame.event.get(): # exit game triggered (exits game) if event.type == self._pygame.QUIT: game_alive = False self._pygame.quit() raise SystemExit """ draw all objects in following order: - nodes - active troops """ for node in self._game_nodes: screen.blit(node.getSurface(), (node.getX(), node.getY())) self._pygame.display.flip() # end game loop def createPaths(self, nodes = None): if(nodes == None or len(nodes) == 0): # !!! print console error message self._pygame.quit() raise SystemExit paths = [] for node in nodes: for edge in node.getEdges(): # place path endpoints in middle of each node surface # (nodes x and y are located at the top-left corner of # their surface) path = ((node.getX() + node.getSize()/2, node.getY() + node.getSize()/2), (nodes[edge].getX() + nodes[edge].getSize()/2, nodes[edge].getY() + nodes[edge].getSize()/2)) paths.append(path) return paths