整个程序太复杂,无法在这里展示。基本上,只要注意我最近的 git commit 中的绿色亮点。我对 DirectInput 很陌生,所以我希望我犯了几个错误。我已经非常仔细地研究了 MSDN 文档,所以我保证我不会只是把它扔在那里并在上面标记 FIX IT FOR ME。:)
基本上,我认为我已经将我的问题缩小到 Engine::getEvent 周围的代码区域(第 238 行+)。我不明白这些功能是如何工作的,并且我已经弄乱了某些部分以实现不同的结果。我的目标是直接读取键盘事件并将这些原始数字输出到屏幕上(稍后我将处理数字的含义)。这里的问题与 KEYBOARD_BUFFER_SIZE 有关。如果我把它变小,程序似乎运行良好,但它不输出任何事件。如果我把它变大,它会运行得更好一些,但它开始变慢然后冻结(OpenGL 窗口只有一个旋转的颜色立方体)。如何正确捕获键盘事件?
我检查了代码中所有设置步骤的返回值。他们都返回 DI_OK 就好了。