我用MSVC++做了一个FPS游戏,它在Windows上运行得很好.但现在我试图让它可移植(至少我想创建一个Linux和Windows版本),所以我决定将IDE更改为Code :: Blocks,将框架更改为wxWidgets.但似乎虚拟键码和扫描码在不同系统上是不同的.
之前我曾经历过,即使在同一个操作系统上,虚拟键码也可能不同但计算机不同(我得到了关于他们无法控制角色的bug报告(取决于numlock状态,lol,而不是笑话),这在修改后修复了代码使用扫描码而不是virtkey代码)(编辑:使用wxWidgets,numpad上的virtkey和扫描代码具有不同的值,具体取决于numlock状态,砰!)
现在使用wxWidgets,似乎wxKeyEvent :: GetRawKeyCode和之前从WM_KEYDOWN的lParam获得的代码是不同的.我还从GetRawKeyCode获得了一个完全不同的linux(ubuntu)扫描代码.
好吧,我可以通过按下所有键并查看它给出的代码来制作我自己的扫描码表,但是ubuntu在我的笔记本电脑上运行的唯一问题是,笔记本电脑没有全键盘...但我需要所有这些使控制设置工作.
所以问题是:是否有一种标准的跨平台方式来获得相同密钥的相同代码(相同位置的密钥更精确)?(至少在Windows和Linux上)
如果您尚未考虑它,您可能可以使用SDL.