我需要一些帮助减慢计时器内的while循环。我正在做一个平台游戏,并希望一个图片盒(块)来回移动,我已经成功了。然而,该块移动得如此之快,以至于它还会延迟。任何帮助将不胜感激!
private void timer2_Tick(object sender, EventArgs e)
{
while (block.Left > (ClientSize.Width-ClientSize.Width))
{
block.Left -= 1;
if (block.Left == (ClientSize.Width - ClientSize.Width))
{
break;
}
}
while (block.Right < ClientSize.Width)
{
block.Left += 1;
if (block.Right == ClientSize.Width)
{
break;
}
}
}
}
答案 0 :(得分:0)
您可以使用线程来查看示例代码:
$secondary
答案 1 :(得分:0)
您可以更改计时器滴答的间隔。您可以使用timer2.Interval = 1000; //This would make the timer tick every second.
属性执行此操作。
private void timer2_Tick(object sender, EventArgs e)
{
if (block.Left < (ClientSize.Width-ClientSize.Width)
{
block.Left -= 1;
}
if (block.Right > (ClientSize.Width-ClientSize.Width)
{
block.Left += 1;
}
}
该值表示刻度之间的毫秒数。
执行此操作后,您可以更改tick事件中的代码,以便它只根据tick事件移动一次。
timer2.Interval
这样,您就可以使用lib
属性调整移动速度。