Q:win11 vs2022 c++ easyx怎么设置才能做到不需要终端,直接对着游戏窗口键盘输入?
A:
参考链接:
https://qa.codebus.cn/question/2449 (这个链接是EasyX的官方论坛)
https://wenku.csdn.net/answer/be5e1e7c532e47f9a4f3564628aea0a4
https://ask.csdn.net/questions/7978319
简单地说,win11终端设置,不要使用新版windows终端terminal,改回cmd,也就是所谓的“控制台主机”,这样可以不需要命令行窗口在前台置顶,或者说获得焦点。(经笔者测试,环境VS2022和EasyX_20240601,改为控制台主机后,命令行黑框直接和游戏图形窗口融合了,也就是F5编译调试运行,只会弹出一个窗口,不再是之前两个窗口)
另一种解决办法是改用GetAsyncKeyState()
而不是_getch()
。总之要获取键盘状态而不是输入字符到命令行窗口里面。对于获取键盘输入,除了最常见的_getch()
,还有更好的getmessage
和peekmessage
。
如果完全不想要命令行黑框窗口,需要创建 Win32 Application 类型的应用,而不是普通的控制台应用。(重新创建项目后,代码也要将 main 对应的修改为 WinMain 格式)