【发布时间】:2012-08-02 15:27:15
【问题描述】:
我有四个按钮,分别称为“ship1,ship2”等。 我希望它们移动到表格的右侧(以相同的速度并同时开始),并且每次我点击一个“船”时,所有的船都应该停止。
我知道我需要使用计时器(我编写了使用线程的代码,但是在停止船只时给我带来了麻烦。)我不知道如何使用计时器。
我试图阅读 MDSN 中的计时器信息,但我不明白。 那你能帮帮我吗?
这里是使用线程的代码。 我不想使用它。我需要使用定时器! (我在这里发布它是因为它不让我在没有任何代码的情况下发布
private bool flag = false;
Thread thr;
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
flag = false;
thr = new Thread(Go);
thr.Start();
}
private delegate void moveBd(Button btn);
void moveButton(Button btn)
{
int x = btn.Location.X;
int y = btn.Location.Y;
btn.Location = new Point(x + 1, y);
}
private void Go()
{
while (((ship1.Location.X + ship1.Size.Width) < this.Size.Width)&&(flag==false))
{
Invoke(new moveBd(moveButton), ship1);
Thread.Sleep(10);
}
MessageBox.Show("U LOOSE");
}
private void button1_Click(object sender, EventArgs e)
{
flag = true;
}
【问题讨论】:
-
这似乎是家庭作业\作业。如果是,我会更新你的标签。
-
@zeencat 不是。我正在尝试开发一款游戏。
-
如果您正在构建游戏,我可以推荐 XNA 而非 WinForms 应用程序吗?这将使构建这款游戏变得更加容易