void itemmove(List <baritem> it) { for (int i = 0; i < it.Count; i++) { if (!(it.ElementAt(i).item.Location.X < 0 && it.ElementAt(i).item.Location.Y < 0)) { it.ElementAt(i).item.Location = new Point(it.ElementAt(i).item.Location.X, it.ElementAt(i).item.Location.Y + 2); } //if ((it.ElementAt(i).item.Location.X < label8.Location.X + label8.Width) && (label8.Location.X < it.ElementAt(i).item.Location.X + it.ElementAt(i).item.Width) && (it.ElementAt(i).item.Height + it.ElementAt(i).item.Location.Y < label8.Location.Y) && (it.ElementAt(i).item.Height + it.ElementAt(i).item.Location.Y > label8.Location.Y + label8.Height)) if ((label8.Location.X < it.ElementAt(i).item.Location.X + it.ElementAt(i).item.Width) && (it.ElementAt(i).item.Location.X < label8.Location.X + label8.Width) && (it.ElementAt(i).item.Location.Y + it.ElementAt(i).item.Width > label8.Location.Y - 2) && (it.ElementAt(i).item.Location.Y + it.ElementAt(i).item.Width < label8.Location.Y + 2)) { //효과 if (it.ElementAt(i).itemnum == 1) { label8.Width = 110; timerforitem1 = 0; label24.Visible = true; label24.Text = "long bar!"; timer4.Enabled = true; } if (it.ElementAt(i).itemnum == 2) { ballnum++; sball ww = new sball(); ww.ball.Location = new Point(label8.Location.X + 20, label8.Location.Y - 16); panel3.Controls.Add(ww.ball); serveball.Add(ww); serveball.Last().ball.BringToFront(); } if (it.ElementAt(i).itemnum == 3) { ballspeed = 3; timerforitem2 = 0; label25.Visible = true; label25.Text = "slooow"; timer5.Enabled = true; } it.ElementAt(i).item.Location = new Point(-22, -22); it.ElementAt(i).item.Visible = false; } if (it.ElementAt(i).item.Location.Y > panel3.Height) { it.ElementAt(i).item.Location = new Point(-22, -22); it.ElementAt(i).item.Visible = false; } } /* for (int i = 0; i < it.Count; i++) * { if(it.ElementAt(i).item.Visible==false) * it.RemoveAt(i); i--; * }*/ }
void serveballmove(sball ball) { //충격 딜레이 double kk = DegreeToRadian(ball.k); double rx = Math.Cos(kk) * ballspeed; double ry = Math.Sin(kk) * ballspeed; if (!(ball.ball.Location.X < 0 && ball.ball.Location.Y < 0)) { ball.ball.Location = new Point(ball.ball.Location.X + (int)rx, ball.ball.Location.Y - (int)ry); } rx = ball.ball.Location.X; ry = ball.ball.Location.Y; //foreach (Label n in blocksLabel) // 서브 볼 벽돌 충돌 for (int i = 0; i < blocksLabel.Count; i++) { double buffangle = ball.k; double nx = blocksLabel.ElementAt(i).Location.X; double ny = blocksLabel.ElementAt(i).Location.Y; if ((nx < rx + ball.ball.Width) && (rx < nx + blocksLabel.ElementAt(i).Width)) { if ((ry + ball.ball.Height < ny + 2) && (ry + ball.ball.Height > ny - 2) || (ry < ny + 2 + blocksLabel.ElementAt(i).Height) && (ry > ny - 2 + blocksLabel.ElementAt(i).Height)) { itemcreate(blocksLabel.ElementAt(i)); buffangle = 360 - buffangle; //i = blocksLabel.Count + 1; blocksLabel.ElementAt(i).Visible = false; blocksLabel.ElementAt(i).Location = new Point(-22, -22); //endscore += 100; // blocksLabel.RemoveAt(i); // blockstack--; } } // if ((ry + ball.ball.Height > ny) && (ry < ny + blocksLabel.ElementAt(i).Height)) if (((ry > ny) && (ry < ny + blocksLabel.ElementAt(i).Height)) || ((ry + label14.Height > ny) && (ry + label14.Height < ny + blocksLabel.ElementAt(i).Height))) { //if ((rx + ball.ball.Width < nx + 2) && (rx + ball.ball.Width > nx - 2) || (nx + blocksLabel.ElementAt(i).Width - 2 < rx) && (nx + blocksLabel.ElementAt(i).Width + 2 > rx)) if (((rx < nx) && (rx + label14.Width > nx - 3)) || (rx + label14.Width > blocksLabel.ElementAt(i).Width + blocksLabel.ElementAt(i).Location.X) && (rx < blocksLabel.ElementAt(i).Width + nx + 3)) { buffangle = 180 - buffangle; itemcreate(blocksLabel.ElementAt(i)); // i = blocksLabel.Count + 1; blocksLabel.ElementAt(i).Visible = false; blocksLabel.ElementAt(i).Location = new Point(-22, -22); //blocksLabel.RemoveAt(i); // blockstack--; //endscore += 100; } } if (buffangle < 0) { buffangle += 360; } if (buffangle > 360) { buffangle -= 360; } ball.k = buffangle; } // 서브 볼 /// //바 충돌 윗면 // //label15.Text = "검사"; if ((label8.Location.X < ball.ball.Location.X + ball.ball.Width) && (ball.ball.Location.X < label8.Location.X + label8.Width) && (ball.ball.Location.Y + ball.ball.Width > label8.Location.Y - 2) && (ball.ball.Location.Y + ball.ball.Width < label8.Location.Y + 2)) { double buffangle = ball.k; buffangle = 360 - buffangle; if (buffangle < 0) { buffangle += 360; } if (buffangle > 360) { buffangle -= 360; } ball.k = buffangle; } //벽면 충돌 if (ball.ball.Location.Y < 1) { double buffangle = ball.k; buffangle = 360 - buffangle; if (buffangle < 0) { buffangle += 360; } if (buffangle > 360) { buffangle -= 360; } ball.ball.Location = new Point(ball.ball.Location.X, ball.ball.Location.Y + 2); ball.k = buffangle; } if ((ball.ball.Location.X < 1) || (ball.ball.Location.X + ball.ball.Width > panel3.Width)) { double buffangle = ball.k; buffangle = 180 - buffangle; if (buffangle < 0) { buffangle += 360; } if (buffangle > 360) { buffangle -= 360; } if (ball.ball.Location.X < 1) { ball.ball.Location = new Point(ball.ball.Location.X + 2, ball.ball.Location.Y); } else { ball.ball.Location = new Point(ball.ball.Location.X - 2, ball.ball.Location.Y); } ball.k = buffangle; } if (ball.ball.Location.Y + 5 > panel3.Height) { //서브 공 탈락 ball.ball.Location = new Point(-22, -22); ball.ball.Visible = false; //ballnum--; } }