我目前正在試圖讓3個球在窗體周圍彈跳,讓它工作,事情是我的代碼的這部分(使球從窗體的邊緣反彈)似乎很笨重,我覺得它可以以某種方式濃縮。在那裏,我可以清理從窗體邊緣彈跳C#
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;
}
}
像更合適的代碼審查疊加。 – user2864740 2014-09-04 03:10:56
如果您將'XBounce'和'YBounce'更改爲'int'並使用了值'1'和'-1',您可以簡單地乘以反彈方向以獲得加/減值。翻轉標誌來改變方向很容易。 – HABO 2014-09-04 03:14:59