【问题标题】:Game Update in C++ (Threads or Timer)?C++ 中的游戏更新(线程或计时器)?
【发布时间】:2014-05-18 05:03:48
【问题描述】:

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

【问题讨论】:

  • 来自 MSDN 关于 DirectInput 的文章:不建议使用 DirectInput 进行键盘和鼠标输入。您应该改用 Windows 消息。
  • 啊……好吧。我想我只需要调整我的代码以使用 Windows 消息!感谢您的建议!

标签: c++ multithreading timer directinput


【解决方案1】:

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

【讨论】:

  • 聪明!我明白了,谢谢你的帮助!祝你有美好的一天。
猜你喜欢
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多