我有一个关于c学校乒乓球比赛的问题



为了上学,我需要做一个乒乓球游戏它快完成了,但我想在我销毁所有区块后添加一个写着"干得好"的信息框但我试着把它放在我的计时器里,当我开始游戏时,成千上万的信息框出现了,我无法移动我的球拍。

这是我的计时器代码

private void timer1_Tick(object sender, EventArgs e)
{   //afstand bal van de top
picBall.Top += vSpeed;
//afstand bal van links
picBall.Left += hSpeed;
//zorgt dat die niet door bottom gaat
if (picBall.Bottom > this.ClientSize.Height)
{
vSpeed = -vSpeed;
}
//zorgt dat die niet door top gaat
if (picBall.Top < 0)
{
vSpeed = -vSpeed;
}
//zorgt dat die niet door right gaat
if (picBall.Right > this.ClientSize.Width)
{
hSpeed = -hSpeed;
}
//zorgt dat die niet door left gaat
if (picBall.Left < 0)
{
hSpeed = -hSpeed;
}
//wanneer de bal de paddle raakt
if (picBall.Bounds.IntersectsWith(picPaddle.Bounds) == true)
{
vSpeed = -vSpeed;
}
//als de bal de grond raakt verlies je en gaat de form dicht
if (picBall.Bounds.IntersectsWith(picGrond.Bounds) == true)
{
timer1.Stop();
MessageBox.Show("you lose!");
this.Close();
}

//DIT ZORGT DAT ALLE BLOKKEN WEG GAAN
//DIT ZORGT DAT ALLE BLOKKEN WEG GAAN
//DIT ZORGT DAT ALLE BLOKKEN WEG GAAN
//zorgt dat de bal de blokken raakt en niet door de blokken heen ga
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox1.Bounds) && pictureBox1.Visible == true)
{
pictureBox1.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox2.Bounds) && pictureBox2.Visible == true)
{
pictureBox2.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox3.Bounds) && pictureBox3.Visible == true)
{
pictureBox3.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox4.Bounds) && pictureBox4.Visible == true)
{
pictureBox4.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox5.Bounds) && pictureBox5.Visible == true)
{
pictureBox5.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox6.Bounds) && pictureBox6.Visible == true)
{
pictureBox6.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox7.Bounds) && pictureBox7.Visible == true)
{
pictureBox7.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox8.Bounds) && pictureBox8.Visible == true)
{
pictureBox8.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox9.Bounds) && pictureBox9.Visible == true)
{
pictureBox9.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox10.Bounds) && pictureBox10.Visible == true)
{
pictureBox10.Visible = false;
vSpeed = -vSpeed;
}
}
}

//PICTUREBOX 11 : 3X RAKEN DAT DIE WEG GAAT EN 3X KLEUR VERANDERING
//for (int x = 0; x < row; x++)
//{
//for (int y = 0; y < col; y++)
//{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
//  if (picBall.Bounds.IntersectsWith(pictureBox11.Bounds) && pictureBox11.Visible == true)
if (picBall.Bounds.IntersectsWith(pictureBox11.Bounds) && HitCount ==3)
{
pictureBox11.BackColor = Color.Orange;
vSpeed = -vSpeed;
HitCount--;
}
else if (picBall.Bounds.IntersectsWith(pictureBox11.Bounds) && HitCount == 2)
{
pictureBox11.BackColor = Color.Yellow;
vSpeed = -vSpeed;
HitCount--;
}
else if (picBall.Bounds.IntersectsWith(pictureBox11.Bounds) && HitCount == 1)
{
pictureBox11.BackColor = Color.Blue;
vSpeed = -vSpeed;
HitCount--;
}
else if (picBall.Bounds.IntersectsWith(pictureBox11.Bounds) && HitCount == 0 && pictureBox11.Visible == true)
{
pictureBox11.Visible = false;
vSpeed = -vSpeed;
}


for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox12.Bounds) && pictureBox12.Visible == true)
{
pictureBox12.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox13.Bounds) && pictureBox13.Visible == true)
{
pictureBox13.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox14.Bounds) && pictureBox14.Visible == true)
{
pictureBox14.Visible = false;
vSpeed = -vSpeed;
}
}
}
for (int x = 0; x < row; x++)
{
for (int y = 0; y < col; y++)
{   //zorgt dat de bal de blokken weg laat verdwijnen en als de blok die weg is weg is dan doet die er niks meer mee
if (picBall.Bounds.IntersectsWith(pictureBox15.Bounds) && pictureBox15.Visible == true)
{
pictureBox15.Visible = false;
vSpeed = -vSpeed;
}
}
}

}

在我的比赛中,我有15个砖块要用球摧毁,正如你所看到的,我为每个砖块制作了14个相同的代码。1块砖需要3次才能被摧毁。但的效果很好

我的问题是,如果你销毁了所有的砖块,该把信息框放在哪里?

我试着在代码末尾这样做,但不起作用对不起我的英语,谢谢你的帮助

我会创建一个新方法,当一块砖被乒乓球击中时,该方法就会被调用。该方法将检查每个砖块的状态(如果它被销毁(,如果所有砖块都被销毁,则显示消息。这将不会再次显示,因为如果所有都被摧毁,你就不会撞到一块砖。

最新更新