コード例 #1
0
ファイル: GameBoardScript.cs プロジェクト: vfridell/HiveUnity
    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;
        }
    }
コード例 #2
0
ファイル: GameBoardScript.cs プロジェクト: vfridell/HiveUnity
    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);
    }
コード例 #3
0
ファイル: GameBoardScript.cs プロジェクト: vfridell/HiveUnity
    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);
    }
コード例 #4
0
ファイル: GameBoardScript.cs プロジェクト: vfridell/HiveUnity
    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);
    }
コード例 #5
0
ファイル: GameBoardScript.cs プロジェクト: vfridell/HiveUnity
    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));
    }