c++ - C++ 中的游戏更新(线程或定时器)?

标签 c++ multithreading timer directinput

最近想自己做一个游戏,遇到一个问题... 我想以每秒 60 次的速度渲染我的游戏,这很好,但随后我使用 Directinput8 设置我的键盘和鼠标,然后调试我的游戏... 我发现我的键盘每秒也更新 60 次。例如,我按“向上”键,我的菜单就会变得疯狂!我知道我可以使用一些变量来解决这个问题,但我也听说 Timer 和 Threads 很有用,我可以问一些曾经制作过游戏或知道我应该怎么做的人给我一些建议吗?任何事情都会有帮助!谢谢! :) 顺便说一下,我知道有一些很酷的库(比如 Allegro?)已经完成,也许有人可以告诉我他们是如何解决这个“更新和渲染”问题的?

最佳答案

通常每个游戏只有一个渲染线程。它会周期性地,比如说每秒,更新整个屏幕,获取你此刻的所有输入。输入,例如键盘和鼠标,您在该线程外部收集,并且该线程在每次更新时获取它。

关于c++ - C++ 中的游戏更新(线程或定时器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718724/

相关文章:

c++ - 递归地 boost 分割并附加到集合

c# - 是否有关于线程调度的简单而有意识的图表/算法?

c++ - OpenAL 中播放缓冲区之间的静音?

C++从内部销毁结构

c++ - std::string 字符编码

c++:OpenMP 和非随机访问 STL 容器——一种可能的解决方法

Java 在终止之前等待所有线程

python - 执行周期性 Action

Java - 更新现有秒表代码以包括倒计时

c - 如何解决这个Linux定时器问题