Breakout - упущение в игре.Предложения? - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь сделать копию для обсуждения в 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 && 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 && x.Tag == "Hit")
                    if (ball1.Bounds.IntersectsWith(x.Bounds))
                    {
                        score = score + 1;
                        bally = -bally;
                        this.Controls.Remove(x);
                        if(score<=5)
                            speed = speed + 1;
                    }
            }
}

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

...