def __init__(self, tilePosition): self.surface = pygame.image.load("./hextile.png").convert() self.surface.set_colorkey(ConfigReader.getColourForId('TRANSPARENT_COLOR_KEY'), RLEACCEL) self.boundingBox = self.surface.get_rect() self.boundingBox.center = HexCoordSys.hexToPixel(tilePosition, TILE_EDGE_LENGTH, CENTER) self.views = [] self.addView(TextView("%d,%d" % (tilePosition.row, tilePosition.col))) self.tilePosition = tilePosition
def __init__(self, tilePositions, colour): self.colour = colour for tilePosition in tilePositions: center = HexCoordSys.hexToPixel(tilePosition, TILE_EDGE_LENGTH, CENTER) self.vertices = list() for i in range(0,6): angle = (2 * math.pi / 6) * (i + 0.5) x_i = center.x + TILE_EDGE_LENGTH * math.cos(angle) y_i = center.y + TILE_EDGE_LENGTH * math.sin(angle) self.vertices.append((x_i, y_i))
def setPosition(self, screenX, screenY): """ Translates position into position at top left of nearest tile. Does not work if position is already at top left """ self.tilePosUnderCursor = HexCoordSys.pixelToHex(HexCoordSys.ScreenCoordinate(screenX, screenY), TILE_EDGE_LENGTH, CENTER) self.boundingBox.center = HexCoordSys.hexToPixel(self.tilePosUnderCursor, TILE_EDGE_LENGTH, CENTER)
def __init__(self, colour, tilePositions): self.positions = set() for tilePosition in tilePositions: self.positions.add(HexCoordSys.hexToPixel(tilePosition, TILE_EDGE_LENGTH, CENTER)) self.colour = colour self.radius = int(TILE_EDGE_LENGTH / 2.0)