适用于Windows游戏的好计时器

时间:2018-05-02 10:51:28

标签: c# winforms animation

几天前,我开始做分娩。我想创建一个游戏,你应该避免随机对象。好吧,我有所有工作游戏,但是 我的方法

private void Game_form_Paint(object sender, PaintEventArgs e)
{

    for ( int i =0; i < Bonus.Count; ++i) // Bonus - private list ( not more than 5)
    {
        e.Graphics.DrawImage(bonus, Bonus[i].Object_Pos);
    }
    for(int i = 0; i < Objects.Count; ++i) // Objects - private list ( not more than 10)
    {
        e.Graphics.DrawImage(Kunai, Objects[i].Object_Pos);
    }
    e.Graphics.DrawImage(Main, player.Player_Pos); // Player ( only one )
}

我有计时器:

private void Drawing_Tick(object sender, EventArgs e)  
{
    Bonus_move(); // method for changing objects position in Bonus list 
    Player_move(); // method for changing player position
    Objects_move();  // method for changing objects position in Objects list
    Thread.Sleep(5);
    Invalidate();
    Thread.Sleep(5);    
}

每1步我应该改变7 px的位置,当我改变1 px时 - 我猜我的应用程序有一个很好的帧率(通过视线) 现在计时器的间隔为11毫秒,两个Thread.Sleep(5)表示良好的帧速率,但是当我想要至少静态30 + fps时,我可能有15到30 fps。  你能告诉我改变什么吗?当然我明白我的代码可能很糟糕或其他。

0 个答案:

没有答案