#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. честно говоря, я не привык к этим точкам останова и не знаю, чего ожидать