从表格C#的边缘反弹

时间:2014-09-04 03:02:28

标签: c#

我正在尝试让3个球在表格周围弹跳并使其正常工作,事情是我的代码的这部分(使球从表格的边缘反弹)看起来非常笨重,我觉得它可能是某种程度上凝聚了。有没有办法可以清理它

public void Move(int width, int height)
        {
            if ((position.X >= 0) && (position.X + size <= width)) //Within X Bounds
            {
                if (XBounce)
                {
                    position.X -= speed;
                }
                else
                {
                    position.X += speed;
                }
            }
            else
            {
                if (!XBounce)
                {
                    position.X -= size / 2;
                }
                else
                {
                    position.X += size / 2;
                }
                XBounce = !XBounce;
            }

            if ((position.Y >= 0) && (position.Y + size <= height)) //Within Y Bounds
            {
                if (YBounce)
                {
                    position.Y -= speed;
                }
                else
                {
                    position.Y += speed;
                }
            }
            else
            {
                if (!YBounce)
                {
                    position.Y -= size / 2;
                }
                else
                {
                    position.Y += size / 2;
                }
                YBounce = !YBounce;
            }

        }

1 个答案:

答案 0 :(得分:1)

通过将XbounceYBounce更改为设置为int1的{​​{1}}变量,您可以稍微简化一下:

-1