Прорыв — упущение в игре. Предложения?

#c# #2d-games #breakout

#c# #2d-игры #прорыв

Вопрос:

Я пытаюсь сделать копию для breakout на C #. Я почти закончил свою работу, но обнаружил кое-что, что работает неправильно.

На чем основана игра: мяч должен дважды ударить по кирпичу, чтобы разрушить его.

И вот в чем проблема: иногда мой мяч попадает в кирпич в углу и мгновенно разрушает его (кирпич остается нетронутым). Есть предложения по решению этой проблемы?

Я приложу видео и код, где мяч и кирпич сталкиваются.

Мяч, кирпич = PictureBox

Моя проблема проиллюстрирована:https://youtu.be/73iaDUxo4AE

 if (pt.Y < 0 || ball1.Bounds.IntersectsWith(Player.Bounds))
                bally = -bally;
foreach(Control x in this.Controls)
{
            if (x is PictureBox amp;amp; x.Tag == "block")
            {
                if (ball1.Bounds.IntersectsWith(x.Bounds))
                {
                    x.Tag = "Hit";
                    Image myimage = new Bitmap("blue_block.png");
                    x.BackgroundImage = myimage;
                    x.BackgroundImageLayout = ImageLayout.Stretch;
                    bally = -bally;
                }
            }
            else
            {
                if (x is PictureBox amp;amp; x.Tag == "Hit")
                    if (ball1.Bounds.IntersectsWith(x.Bounds))
                    {
                        score = score   1;
                        bally = -bally;
                        this.Controls.Remove(x);
                        if(score<=5)
                            speed = speed   1;
                    }
            }
}
  

Заранее большое спасибо, и я надеюсь, что я был достаточно конкретен. Хорошего дня!

Комментарии:

1. Я предполагаю, this.Controls.Remove(x); является ли строка кодирования удалением кирпича? Если да, поставьте на нем точку останова и посмотрите, когда он неожиданно вызывается.

2. Я изменил ссылку на видео

3. Да, есть удаление кирпича

4. честно говоря, я не привык к этим точкам останова и не знаю, чего ожидать