我正在尝试制作一个Windows窗体应用程序,其中矩形顺时针移动。这是图片。
这是我的代码。
public partial class Form1 : Form
{
int x;
int y;
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.FillRectangle(Brushes.Crimson, x, y, 20, 20);
}
private void movingTimer_Tick(object sender, EventArgs e)
{
while (true)
{
if (x < 750)
{
x += 5;
}
else if (x == 750 && y < 340)
{
y += 5;
}
break;
}
Invalidate();
}
}
我明白为什么我不能走得更远。如果我用x-= 5进行新的if语句,它将与while循环同时激活。
我不明白的是如何分隔新命令(x-= 5和y-= 5),因此只有在我的第一个while循环结束后才能激活它。
最佳答案
由于我不知道您要从那里去哪里,我将为您提供最稳定的解决方案:
if (y <= 0 && x < 750)
{
x += 5;
}
else if (x == 750 && y < 340)
{
y += 5;
}
else if (y >= 340 && x > 0)
{
x-=5;
}
else if (y > 0 && x <= 0)
{
y-=5;
}
break;
您可能需要稍微调整一下值,但是我想您可以从这里弄清楚。