游戏编程和定时器数量

9
我使用C#和DirectX制作了一个简单的二维游戏引擎,并在测试时完全实现了功能。我有一个使用QueryPerformanceCounter的Timer对象,但我不知道哪个更好的选择:在游戏循环中只使用一个计时器来更新游戏中的所有内容,还是每个需要计时器的对象都有一个独立的计时器。
我的担忧是当我尝试实现线程时,计时器会发生什么?同步会发生什么?

我倾向于使用单个计时器来分派任务(必要时在不同的线程上)...但我不是游戏程序员。 - Tim M.
我有一个类来检查键盘的状态,另一个类用于鼠标,还有“游戏状态”来处理所有逻辑(例如介绍、菜单、游戏)。每个类都有自己的计时器,而游戏循环则有另一个计时器。每个类都管理自己的计时器。 - andresjb
4
令人惊讶的是,大多数游戏编程与其他编程并没有显着的不同。它需要对业务逻辑、多线程和同步以及算法有扎实的理解...就像其他复杂的编程职位一样。 - corsiKa
@corsiKa +1。一种奇怪的理智攻击。不幸的是,正确并不能让你/我受欢迎,但我不在乎 :) - Martin James
1个回答

2

对于每个游戏对象,最好都有一个更新(用户交互和其他计算,如hittest)和绘制函数。您的计时器应该调用最上层的Update方法,而该方法将调用每个对象的更新方法。 绘图可以使用另一个计时器或仅使用while循环直到游戏结束。 我选择只有一个更新计时器。 关于定时器的区别; 比较计时器类


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接