整个程序过于复杂,无法在此展示。基本上,只需要注意我最近git提交中的绿色高亮部分。我对DirectInput非常陌生,所以我预计会犯几个错误。我非常仔细地研究了MSDN文档,所以我保证我不是随便抛出问题并在上面盖上FIX IT FOR ME的章子。
基本上,我认为我已经将我的问题缩小到围绕Engine::getEvent(第238行+)的代码区域。我不理解这些函数如何工作,并且我已经更改了某些部分以获得不同的结果。我的目标是直接读取键盘事件并将这些原始数字输出到屏幕上(稍后我将处理数字的含义)。这里的问题与KEYBOARD_BUFFER_SIZE有关。如果我将其设置得很小,程序似乎运行良好,但不会输出任何事件。如果我将其设置得很大,它会运行得更好,但它开始变慢,然后冻结(OpenGL窗口只有旋转的彩色立方体)。如何正确捕获键盘事件?
我检查了代码中所有更高级别的设置步骤的返回值,它们都正常返回DI_OK。