示例#1
0
        private void InitCards()
        {
            OpCards[0] = new OperationCard(42, 366, imgsOp[0]);
            OpCards[1] = new OperationCard(42, 404, imgsOp[1]);
            OpCards[2] = new OperationCard(42, 443, imgsOp[2]);
            OpCards[3] = new OperationCard(108, 366, imgsOp[2]);
            OpCards[4] = new OperationCard(108, 404, imgsOp[1]);
            OpCards[5] = new OperationCard(108, 443, imgsOp[0]);

            NumCards[0] = new NumericCard(64, 60, imgsNumb[0]);
            NumCards[1] = new NumericCard(64, 132, imgsNumb[1]);
            NumCards[2] = new NumericCard(64, 204, imgsNumb[2]);
            NumCards[3] = new NumericCard(64, 276, imgsNumb[3]);
            NumCards[4] = new NumericCard(108, 60, imgsNumb[4]);
            NumCards[5] = new NumericCard(108, 132, imgsNumb[5]);
            NumCards[6] = new NumericCard(108, 204, imgsNumb[6]);
            NumCards[7] = new NumericCard(108, 276, imgsNumb[7]);

            foreach (NumericCard p in NumCards)
            {
                this.Controls.Add(p);
            }
            foreach (OperationCard p in OpCards)
            {
                this.Controls.Add(p);
            }
        }
示例#2
0
        /// <summary>
        /// Controla o arrastar das cartas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerDrag_Tick(object sender, EventArgs e)
        {
            //há alguma carta sendo manuseada?
            if (mouseNum == null && mouseOp == null) //caso não haja, verifique novamente.
            {
                //descobrindo que carta está sendo arrastada
                foreach (NumericCard nc in NumCards)
                {
                    if (nc.dragging)
                    {
                        mouseNum = nc;
                    }
                }
                foreach (OperationCard oc in OpCards)
                {
                    if (oc.dragging)
                    {
                        mouseOp = oc;
                    }
                }
            }


            if (mouseNum != null)             // há carta numérica sendo manuseada?
            {
                if (releaseOut)               //há e foi liberada
                {
                    mouseNum.resetPosition(); //reinicia posição e variável dragging
                    mouseNum   = null;        //libera variável
                    releaseOut = false;
                    return;
                }
                mouseNum.changePosition(MousePosition.X - this.Location.X - 15, MousePosition.Y - this.Location.Y - 15);
                mouseNum.BringToFront();
            }
            else if (mouseOp != null)// há carta de operação sendo manuseada?
            {
                if (releaseOut)
                {
                    mouseOp.resetPosition();
                    mouseOp    = null;
                    releaseOut = false;
                    return;
                }
                mouseOp.changePosition(MousePosition.X - this.Location.X - 20, MousePosition.Y - this.Location.Y - 20);
                mouseOp.BringToFront();
            }
            return;
        }
示例#3
0
        /// <summary>
        /// Regula liberação das cartas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            //verificar se foi solto em cima de uma das caixas válidas

            //x e y do local do release
            int x = e.X - this.Location.X, y = e.Y - this.Location.Y;

            int[] pointsNum, pointsOp;

            if (mouseNum != null)
            {
                //o local de release é dentro de algum dos locais possíveis para número?
                for (int i = 0; i < positionsNum.Length; i++)
                {
                    pointsNum = (int[])positionsNum[i];
                    if (x > pointsNum[0] && x <pointsNum[1] && y> pointsNum[2] && y < pointsNum[3])
                    {
                        mouseNum.AllocatePosition(pointsNum[0], pointsNum[2]);
                        mouseNum = null;
                        return;
                    }
                }
            }

            if (mouseOp != null)
            {
                //o local de release é dentro de algum dos locais possíveis para operação?
                for (int i = 0; i < positionsOp.Length; i++)
                {
                    pointsOp = (int[])positionsOp[i];
                    if (x > pointsOp[0] && x <pointsOp[1] && y> pointsOp[2] && y < pointsOp[3])
                    {
                        mouseOp.AllocatePosition(pointsOp[0], pointsOp[2]);
                        mouseOp = null;
                        return;
                    }
                }
            }
            releaseOut = true;
        }
        /// <summary>
        /// Regula liberação das cartas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            //verificar se foi solto em cima de uma das caixas válidas

            //x e y do local do release
            int x = e.X-this.Location.X, y= e.Y-this.Location.Y;
            int[] pointsNum, pointsOp;

            if (mouseNum != null)
            {
                //o local de release é dentro de algum dos locais possíveis para número?
                for (int i = 0; i < positionsNum.Length; i++)
                {
                    pointsNum = (int[])positionsNum[i];
                    if (x > pointsNum[0] && x < pointsNum[1] && y > pointsNum[2] && y < pointsNum[3])
                    {
                        mouseNum.AllocatePosition(pointsNum[0], pointsNum[2]);
                        mouseNum = null;
                        return;
                    }
                }
            }

            if (mouseOp != null)
            {
                //o local de release é dentro de algum dos locais possíveis para operação?
                for (int i = 0; i < positionsOp.Length; i++)
                {
                    pointsOp = (int[])positionsOp[i];
                    if (x > pointsOp[0] && x < pointsOp[1] && y > pointsOp[2] && y < pointsOp[3])
                    {
                        mouseOp.AllocatePosition(pointsOp[0], pointsOp[2]);
                        mouseOp = null;
                        return;
                    }
                }
            }
            releaseOut = true;
        }
        /// <summary>
        /// Controla o arrastar das cartas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timerDrag_Tick(object sender, EventArgs e)
        {
            //há alguma carta sendo manuseada?
            if (mouseNum == null && mouseOp == null) //caso não haja, verifique novamente.
            {
                //descobrindo que carta está sendo arrastada
                foreach (NumericCard nc in NumCards)
                    if (nc.dragging)
                        mouseNum = nc;
                foreach (OperationCard oc in OpCards)
                    if (oc.dragging)
                        mouseOp = oc;
            }

            if (mouseNum != null) // há carta numérica sendo manuseada?
            {
                if (releaseOut) //há e foi liberada
                {
                    mouseNum.resetPosition(); //reinicia posição e variável dragging
                    mouseNum = null;           //libera variável
                    releaseOut = false;
                    return;
                }
                mouseNum.changePosition(MousePosition.X - this.Location.X-15, MousePosition.Y - this.Location.Y-15);
                mouseNum.BringToFront();
            }
            else if (mouseOp != null)// há carta de operação sendo manuseada?
            {
                if (releaseOut)
                {
                    mouseOp.resetPosition();
                    mouseOp = null;
                    releaseOut = false;
                    return;
                }
                mouseOp.changePosition(MousePosition.X - this.Location.X-20, MousePosition.Y - this.Location.Y-20);
                mouseOp.BringToFront();
            }
            return;
        }
        private void InitCards()
        {
            OpCards[0] = new OperationCard(42, 366, imgsOp[0]);
            OpCards[1] = new OperationCard(42, 404, imgsOp[1]);
            OpCards[2] = new OperationCard(42, 443, imgsOp[2]);
            OpCards[3] = new OperationCard(108, 366, imgsOp[2]);
            OpCards[4] = new OperationCard(108, 404, imgsOp[1]);
            OpCards[5] = new OperationCard(108, 443, imgsOp[0]);

            NumCards[0] = new NumericCard(64, 60, imgsNumb[0]);
            NumCards[1] = new NumericCard(64, 132, imgsNumb[1]);
            NumCards[2] = new NumericCard(64, 204, imgsNumb[2]);
            NumCards[3] = new NumericCard(64, 276, imgsNumb[3]);
            NumCards[4] = new NumericCard(108, 60, imgsNumb[4]);
            NumCards[5] = new NumericCard(108, 132, imgsNumb[5]);
            NumCards[6] = new NumericCard(108, 204, imgsNumb[6]);
            NumCards[7] = new NumericCard(108, 276, imgsNumb[7]);

            foreach (NumericCard p in NumCards)
                this.Controls.Add(p);
            foreach (OperationCard p in OpCards)
                this.Controls.Add(p);
        }