у меня вопрос с игрой понг для школы c# - PullRequest
0 голосов
/ 14 марта 2020

для школы мне нужно сделать игру понг, она почти закончена, но я хочу добавить окно с надписью «хорошая работа» после того, как я уничтожил все блоки, но я попытался поместить его в свой таймер, и когда я начал В игре появляются тысячи ящиков сообщений, и я не могу пошевелить веслом.

вот мой код таймера

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 раза, чтобы быть уничтоженным. но это прекрасно работает

мой вопрос, где поставить окно сообщения, если вы уничтожили все кирпичи?

Я пытался сделать это до конца кода, но он не работает извините за мой английский sh и спасибо за вашу помощь

1 Ответ

0 голосов
/ 14 марта 2020

Я бы создал новый метод, который вызывается, когда кирпич попадает в мяч для пинг-понга. Метод будет проверять состояние каждого кирпича (если он разрушен) и, если все кирпичи будут уничтожены, отобразить сообщение. Это не будет отображаться снова, так как вы не попадете в кирпич, если все уничтожено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...