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); } }
/// <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; }
/// <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); }