Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# windows窗体游戏的好计时器_C#_Winforms_Animation - Fatal编程技术网

C# windows窗体游戏的好计时器

C# windows窗体游戏的好计时器,c#,winforms,animation,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,

几天前我开始做额外的家庭作业。我想创建一个游戏,在其中你应该避免随机对象。好的,我有所有的工作,但是 我的方法

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 )
}
每一步我应该改变7像素的位置,当我在1像素上改变时-我想我的应用程序有一个很好的帧速率(通过视觉) 现在计时器有11毫秒的间隔和两个线程。睡眠(5)可以获得很好的帧速率,但我可能有15到30 fps,当我想要至少静态30+fps时。
你能给我换点东西吗?当然,我知道我的代码可能是坏的或其他东西。

如果您的代码正常工作,并且您希望有人对其进行检查,那么这不是正确的论坛。我建议你把它贴在网上。好运气,是我的错。我一小时前刚访问过这个网站。因为我的学校老师不能给一些利润。我知道我应该使用codereview,sryTimer的分辨率约为20-30ms。设置间隔=11ms过于乐观。它也只是保证不更快,不精确。而且:无论您使用哪个计时器,winforms中的任何动画都会不稳定。我看到了有关winforms multitimer的信息,所以,即使使用这个计时器,我也会有麻烦吗?我投票将这个问题作为离题题题来结束,因为它更适合我
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);    
}