我正在尝试使用 Visual C# Express 2010 在 C# 中创建 Pong 游戏。在大多数情况下,我已经完成了游戏的主要思想,但是我遇到了球移动的问题。我创建了一个 for 循环,如下所示:
public void ballSet()
{
if (!Values.isPaused)
{
while(true)
{
if (Values.totalTime.Elapsed.Seconds > 1)
{
Values.totalTime.Restart();
ballMove(50, 50);
}
}
}
}
public void ballMove(int factorX, int factorY)
{
Values.ballLastX = ball.Location.X;
Values.ballLastY = ball.Location.Y;
this.ball.Location = new Point(this.ball.Location.X + factorX, this.ball.Location.Y + factorY);
}
"ballMove(50, 50);" 目前仅用于测试目的。问题是当调用 ballSet() 时,表单似乎以代码 0 关闭,这意味着没有错误。我在这里调用ballSet()。
public Pong()
{
InitializeComponent();
ballSet();
Values.totalTime.Start();
}
我已经检查过了,当我删除 ballSet() 中的 while 循环以及检查秒表的 if 语句(Values.totalTime 是一个秒表)时,程序确实有些工作。显然由于注释掉了while循环,所以ballMove()只被调用了一次,小球移动了一次就停止了。
有谁知道如何解决这一问题?我希望球不断移动,同时仍然可以执行其他任务,例如在 Pong 中移动球棒。
这是我在运行 Pong 时可以给你的输出。