예제 #1
0
    public void RotatePiece()
    {
        CurrPiece.RotateCW();
        if (!ValidBoard(PiecePos))
        {                              //maybe rotation is valid if we shift either left...
            PiecePos += Vector2Int.left;
            if (!ValidBoard(PiecePos)) //...or right
            {
                PiecePos += 2 * Vector2Int.right;
            }

            if (!ValidBoard(PiecePos))
            {//the rotation is invalid, so revert
                PiecePos += Vector2Int.left;
                CurrPiece.RotateCCW();
            }
        }
        ComputeProjection();
    }