Example #1
0
        public void setMasqueradesAs(string type)
        {
            masqueradesAs = type;

            switch (masqueradesAs)
            {
            case "pawn":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_PAWN : ModelSelector.Pieces.BLACK_PAWN);
                break;

            case "rook":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_ROOK : ModelSelector.Pieces.BLACK_ROOK);
                break;

            case "knight":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_KNIGHT : ModelSelector.Pieces.BLACK_KNIGHT);
                break;

            case "bishop":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_BISHOP : ModelSelector.Pieces.BLACK_BISHOP);
                break;

            case "queen":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_QUEEN : ModelSelector.Pieces.BLACK_QUEEN);
                break;

            case "king":
                mModel = ModelSelector.getModel(mPlayer == Color.WHITE ? ModelSelector.Pieces.WHITE_KING : ModelSelector.Pieces.BLACK_KING);
                break;
            }
        }
Example #2
0
        private Model selectModel(int curX, int curY)
        {
            Model lightCube   = ModelSelector.getModel(ModelSelector.Pieces.LIGHT_SQUARE);
            Model darkCube    = ModelSelector.getModel(ModelSelector.Pieces.DARK_SQUARE);
            Model greenSquare = ModelSelector.getModel(ModelSelector.Pieces.GREEN_SQUARE);
            Model redSquare   = ModelSelector.getModel(ModelSelector.Pieces.RED_SQUARE);

            switch (mBoardSquares[curX, curY])
            {
            case BoardSquare.CAN_TAKE:
                return(redSquare);

            case BoardSquare.CAN_MOVE:
                return(greenSquare);

            default:
                if (curX % 2 == 0)
                {
                    if (curY % 2 == 0)
                    {
                        return(lightCube);
                    }
                    else
                    {
                        return(darkCube);
                    }
                }
                else
                {
                    if (curY % 2 == 0)
                    {
                        return(darkCube);
                    }
                    else
                    {
                        return(lightCube);
                    }
                }
            }
        }
Example #3
0
        private void initialize(ContentManager _content, Color _player, Piece _type, Vector2 _position, string _masqueradeType)
        {
            mType         = _type;
            mPlayer       = _player;
            content       = _content;
            masqueradesAs = _masqueradeType;

            switch (masqueradesAs)
            {
            case "pawn":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_PAWN : ModelSelector.Pieces.BLACK_PAWN);
                break;

            case "rook":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_ROOK : ModelSelector.Pieces.BLACK_ROOK);
                break;

            case "knight":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_KNIGHT : ModelSelector.Pieces.BLACK_KNIGHT);
                break;

            case "bishop":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_BISHOP : ModelSelector.Pieces.BLACK_BISHOP);
                break;

            case "queen":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_QUEEN : ModelSelector.Pieces.BLACK_QUEEN);
                break;

            case "king":
                mModel = ModelSelector.getModel(_player == Color.WHITE ? ModelSelector.Pieces.WHITE_KING : ModelSelector.Pieces.BLACK_KING);
                break;
            }

            mPosition = _position;
        }
Example #4
0
        public void Draw()
        {
            if (mDetectionResult != null)
            {
                if ((mBoardMarker != null))
                {
                    Microsoft.Xna.Framework.Matrix boardMat    = mBoardMarker.Transformation.ToXnaMatrix(),
                                                   selectorMat = mDetectionResult.Transformation.ToXnaMatrix(),
                                                   boardMat_inv;

                    boardMat_inv = Microsoft.Xna.Framework.Matrix.Invert(boardMat);

                    Vector3 position  = new Vector3(0, 0, 0);
                    Vector3 direction = new Vector3(0, -1, -1);
                    position = Vector3.Transform(position, selectorMat * boardMat_inv);
                    //direction = Vector3.Transform(direction, selectorMat * boardMat_inv);
                    position = position / 31;
                    //direction = direction / 31;
                    //System.Diagnostics.Debug.WriteLine(position);
                    Vector3 boardCoord = (position + direction * position.Z) + new Vector3(8.5f, 8.5f, 0);


                    int x = (int)(boardCoord.X < 5 ? (4 - boardCoord.X) * -1 : boardCoord.X - 4),
                        y = (int)(boardCoord.Y < 5 ? (4 - boardCoord.Y) * -1 : boardCoord.Y - 4);



                    if ((x >= 0) && (x <= 7) && (y >= 0) && (y <= 7))
                    {
                        // Selection is on board
                        if (mPosition != new Vector2(x, y))
                        {
                            // Selection has changed
                            selectedSince = DateTime.Now;
                            mPosition.X   = x;
                            mPosition.Y   = y;
                            mSelected     = false;
                        }
                        else
                        {
                            // Selection has been held
                            DateTime time         = DateTime.Now;
                            long     elapsedTicks = time.Ticks - selectedSince.Ticks;
                            TimeSpan elapsedSpan  = new TimeSpan(elapsedTicks);
                            if (elapsedSpan.TotalSeconds > 2.0)
                            {
                                // Selection has been held 1 second
                                //mSelected = true;
                                selectedSince = DateTime.Now;
                                GameState state = GameState.getInstance();
                                state.setSelected(mPosition);
                            }
                        }
                    }


                    direction = direction * 15;
                    ModelDrawer.DrawLine(mBoardMarker, position, position + direction);
                    ModelDrawer.Draw(mBoardMarker, ModelSelector.getModel(ModelSelector.Pieces.RED_SQUARE), x, y, 0.2);
                }
            }
        }