C# 游戏编程和定时器数量

C# 游戏编程和定时器数量,c#,multithreading,timer,directx,game-engine,C#,Multithreading,Timer,Directx,Game Engine,我用C#和DirectX制作了一个简单的2D游戏引擎,它在我为测试它而做的演示中功能齐全。我有一个使用QueryPerformanceCounter的Timer对象,我不知道更好的选择是什么:在游戏循环中只使用一个定时器来更新游戏中的所有内容,或者在每个需要定时器的对象中使用一个独立的定时器 我担心的是,当我尝试实现线程时,计时器会发生什么?同步会发生什么情况?您最好为每个游戏对象提供更新(用户交互和其他计算,如hittest)和绘图功能。计时器应该调用最顶层的更新方法,此方法将调用每个对象的更

我用C#和DirectX制作了一个简单的2D游戏引擎,它在我为测试它而做的演示中功能齐全。我有一个使用
QueryPerformanceCounter
Timer
对象,我不知道更好的选择是什么:在游戏循环中只使用一个定时器来更新游戏中的所有内容,或者在每个需要定时器的对象中使用一个独立的定时器


我担心的是,当我尝试实现线程时,计时器会发生什么?同步会发生什么情况?

您最好为每个游戏对象提供更新(用户交互和其他计算,如hittest)和绘图功能。计时器应该调用最顶层的更新方法,此方法将调用每个对象的更新方法。 绘图可以用另一个计时器完成,也可以在游戏结束前循环一段时间。 我的选择是只有一个计时器进行更新。 对于计时器的差异;

我倾向于使用一个计时器来调度任务(如果需要的话,可以在不同的线程上)……但我不是游戏程序员。我有一个类来检查键盘和鼠标的状态,还有一个“游戏状态”,它完成所有逻辑(例如,介绍、菜单、游戏)。每个类都有自己的计时器,游戏循环也有另一个计时器。每个班级都有自己的计时器。令人惊讶的是,大多数游戏编程与其他任何编程都没有明显的区别。它需要对业务逻辑、多线程和同步以及算法有深入的了解。。。就像其他非平凡的编程职位一样。@corsiKa+1。一种奇怪的精神错乱。不幸的是,正确并不能让你/我受欢迎,但我不在乎:)