public static List <HexagonDrawing> GetHexagonsForBoard(Board board) { try { List <HexagonDrawing> results = new List <HexagonDrawing>(); foreach (var kvp in board.playedPieces) { HexagonDrawing hexWithImage = GetHexagonDrawing(kvp.Value, _drawSize, kvp.Key, _mainCanvasOffsetPoint); results.Add(hexWithImage); } Hex minVisibleHex = GetMinVisibleHex(board); int minRow = minVisibleHex.row; int minColumn = minVisibleHex.column; int maxColumn = minColumn + 10; int midCol = minColumn + 5; int endCol = midCol + ((maxColumn - minColumn) / 2); int currentCol = minVisibleHex.column; int currentRow = minVisibleHex.row; foreach (Piece unplayedPiece in board.unplayedPieces.Where(p => p.color == PieceColor.White)) { Hex sideHex = new Hex(currentCol, currentRow); HexagonDrawing hexWithImage = GetHexagonDrawing(sideHex, _drawSize, unplayedPiece, _mainCanvasOffsetPoint); results.Add(hexWithImage); currentCol++; if (currentCol == midCol) { currentCol = minColumn; currentRow -= 1; } } currentCol = midCol + 1; currentRow = minRow; foreach (Piece unplayedPiece in board.unplayedPieces.Where(p => p.color == PieceColor.Black)) { Hex sideHex = new Hex(currentCol, currentRow); HexagonDrawing hexWithImage = GetHexagonDrawing(sideHex, _drawSize, unplayedPiece, _mainCanvasOffsetPoint); results.Add(hexWithImage); currentCol++; if (currentCol == endCol) { currentCol = midCol + 1; currentRow -= 1; } } return(results); } catch (Exception ex) { throw; } }
public static HexagonDrawing GetHexagonDrawing(Hex hex, float size, Vector3 offsetPoint) { HexagonDrawing drawing = new HexagonDrawing(); drawing._center = HexCoordToCenterPoint(hex, size, offsetPoint); drawing.height = size * 2; drawing.width = (float)Math.Sqrt(3) / 2 * drawing.height; return(drawing); }
public static FutureMoveDrawing GetFutureMoveDrawing(Hex hex, float size, Vector3 offsetPoint) { HexagonDrawing hexDrawing = GetHexagonDrawing(hex, size, offsetPoint); FutureMoveDrawing drawing = new FutureMoveDrawing(); drawing._center = hexDrawing.center; drawing._piece = hexDrawing.piece; drawing.height = hexDrawing.height; drawing.width = hexDrawing.width; return(drawing); }
public static HexagonDrawing GetHexagonDrawing(Hex hex, float size, Piece piece, Vector3 offsetPoint) { HexagonDrawing drawing = GetHexagonDrawing(hex, size, offsetPoint); drawing._piece = piece; //double imageXOffset = drawing._image.Source.Width / 2; //double imageYOffset = drawing._image.Source.Height / 2; //float scale = drawing.width / drawing._image.Source.Width + .25; //drawing._image.RenderTransform = new ScaleTransform(scale, scale, imageXOffset, imageYOffset); //Canvas.SetZIndex(drawing._image, -1); //Canvas.SetLeft(drawing._image, drawing.center.X - imageXOffset ); //Canvas.SetTop(drawing._image, drawing.center.Y - imageYOffset); return(drawing); }
public static Vector3 GetOffsetPointFromCenter(Vector3 centerPoint, float size) { HexagonDrawing calculatedCenter = GetHexagonDrawing(new Hex(24, 24), size, new Vector3(0, 0)); return(new Vector3(calculatedCenter._center.x - centerPoint.x, calculatedCenter._center.y - centerPoint.y)); }