C#Brickbreaker游戏,击中时获得砖块消失

2 c#

我有一个用于砖块的x坐标的数组,一个用于砖块的y坐标的数组和一个显示天气可见的数组.我的代码如下:

            if (Visible[0] == 1)
            {
                paper.DrawRectangle(pen, BrickX[0], BrickY[0], 50, 10);
            }
Run Code Online (Sandbox Code Playgroud)

为了让我碰到球撞到砖头,代码写道:

        if (Visible[0] == 1)
        {
            if ((x >= BrickX[0]) && (x <= BrickX[0] + 50))
            {

                if ((y >= picDisplayBat.Height - 190) && (y <= BrickY[0] + 10))
                    yChange = -yChange;
                    Visible[0] = 0;
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,因为当球接近砖块时,砖块在碰撞发生之前消失并且球直接穿过它.有什么建议?

Chr*_*isF 5

如果测试你在第二个周围缺少括号.

无论测试的结果如何,砖都会被设置为不可见.你的代码实际上是这样的:

if ((y >= picDisplayBat.Height - 190) && (y <= BrickY[0] + 10))
{
    yChange = -yChange;
}
Visible[0] = 0;
Run Code Online (Sandbox Code Playgroud)

你要这个:

if ((y >= picDisplayBat.Height - 190) && (y <= BrickY[0] + 10))
{
    yChange = -yChange;
    Visible[0] = 0;
}
Run Code Online (Sandbox Code Playgroud)