我试图创建在C#中的乒乓球比赛用Visual C#速成2010年 在大多数情况下,我对游戏的主要思想完了,但是我有一个问题球移动。我创建了一个for循环,如下所示:While循环不工作按预期在乒乓球比赛
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();
}
我已经检查,当我删除while循环ballSet(),以及if语句检查秒表(Values.totalTime是一个秒表)程序没有有些工作。显然,由于while循环被注释掉,ballMove()只被调用一次,并且球移动一次并停止。
有谁知道如何解决这一问题?我希望球能够不断移动,同时仍然可以执行其他任务,例如在Pong中移动球棒。
这是输出我可以给你在运行傍。
看起来像你打电话给ballset后启动计时器。如果你没有在初始化函数中启动它,它可能是空的。 – 2013-05-09 01:07:13
在调用ballSet()之前启动计时器不会更改任何内容。 – LeChosenOne 2013-05-10 01:32:40