def drawPaths(self): if len(self.path_list) == 0: return path_start = self.path_list[0] for path_end in self.path_list[1:]: start_pix_pos = mapLocToPixelPos(path_start) start_pix_pos[0] -= self.cam_pos[0] start_pix_pos[1] += self.cam_pos[1] end_pix_pos = mapLocToPixelPos(path_end) end_pix_pos[0] -= self.cam_pos[0] end_pix_pos[1] += self.cam_pos[1] pyglet.graphics.draw( 2, pyglet.gl.GL_LINES, ('v2f', (start_pix_pos[0] , start_pix_pos[1], end_pix_pos[0], end_pix_pos[1], ))) path_start = path_end if self.move_labels: for label in self.move_labels: label.draw()
def centerCameraOnSprite(self, sprite): pos = [0,0] pos = mapLocToPixelPos(sprite.map_pos) pos[0] -= MAP_DISPLAY_WIDTH/2 pos[1] = -pos[1] #adjust for odd columns if not isEven(sprite.map_pos[0]): pos[1] += 36 pos[1] += MAP_DISPLAY_HEIGHT/2 self.cam_pos = pos
def __init__(self, pos, terr=Terrain.WATER, feature=None, unit=None, ui=None): self.pos = deepcopy(pos) self.abs_pixel_pos = mapLocToPixelPos(self.pos) self.move_cost = 0 self.setTerrain(terr) self.feature = None self.setFeature(feature) self.unit_list = list() self.ui_element = ui self.terrain_sprite = None self.feature_sprite = None self.unit_sprite = None self.neighbors = [None] * HexDir.LENGTH #for graph operations self.visited = False self.distance = MAX_DISTANCE self.prev_tile = None
def __init__(self, sprite_type, map_pos, *args, **kwargs): super(TileSprite, self).__init__(*args, **kwargs) self.map_pos = map_pos self.pix_pos = mapLocToPixelPos(self.map_pos) self.sprite_type = sprite_type
def moveToMapIdx(self, idx): self.map_pos = idx self.pix_pos = mapLocToPixelPos(self.map_pos)
def createMoveLabels(self): units = self.selected_unit_tile.unit_list if len(units) == 0: return group_moves_left = units[0].moves_left group_move_speed = units[0].move_speed for unit in units[1:]: if unit.moves_left < group_moves_left: group_moves_left = unit.moves_left if unit.move_speed < group_move_speed: group_move_speed = unit.move_speed start_pos = units[0].map_idx group_path = units[0].move_list if group_moves_left > 0: turn_count = 0 else: turn_count = 1 label_list = list() group_moves = group_move_speed for tile_pos in group_path[1:]: next_tile = self.map.tileAt(tile_pos) tile_cost = next_tile.move_cost group_moves -= tile_cost if group_moves <= 0: group_moves = group_move_speed #draw a turn label here label_pix_pos = mapLocToPixelPos(tile_pos) label_x = label_pix_pos[0] - self.cam_pos[0] label_y = label_pix_pos[1] + self.cam_pos[1] label = pyglet.text.Label( str(turn_count), font_name='Arial', font_size=16, x=label_x, y=label_y, anchor_x='center', anchor_y='center', color = (255,255,0,255) ) label_list.append(label) turn_count += 1 elif tile_pos == group_path[-1]: label_pix_pos = mapLocToPixelPos(tile_pos) label_x = label_pix_pos[0] - self.cam_pos[0] label_y = label_pix_pos[1] + self.cam_pos[1] label = pyglet.text.Label( str(turn_count), font_name='Arial', font_size=16, x=label_x, y=label_y, anchor_x='center', anchor_y='center', color = (255,255,0,255) ) label_list.append(label) break return label_list