如何减慢计时器内的while循环速度

时间:2016-05-08 14:47:00

标签: c# timer while-loop picturebox slowdown

我需要一些帮助减慢计时器内的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;
            }  
        }   
    }
}

2 个答案:

答案 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属性调整移动速度。