检查并比较是否在C++控制台应用程序中按下了"down arrow"键?
Check and compare if the "down arrow" key is pressed in a C++ console application?
我有一个很好的菜单系统,我想移动一个箭头来防御选择。我正在测试这个,所以我只有一个向下键的情况构建,但最终我会有向下和向上箭头。
我让它工作,因为我在按下向下键后发现,选择是 224。我遇到了一个新问题,向上箭头键也是 224...
char selector[4] = {'>',' ',' ',' '};
while (1)
{
DisplayMenu();
printf(" Main Menu: n");
printf(" %c Log in n", selector[0]);
printf(" %c Display High Scores n", selector[1]);
printf(" %c Start Game n", selector[2]);
printf(" %c Exit n", selector[3]);
choice = getch();
switch (choice)
{
case 224:
for (int i = 0; i < 4; i++)
{
if (selector[i] == '>')
{
selector[i] = ' ';
i++;
selector[i] = '>';
}
}
break;
}
system("cls");
}
return numberChoice;
我的理论是,当按下向下键时,将 char 数组中的">"移到上面,然后当显示菜单时,它会显示">"或空格,给人一种你在菜单选项中移动的错觉。当然,我似乎找不到一种方法来检测向下箭头是什么。有什么帮助吗?
这取决于平台。
我建议您查看OpenGL库glfw
的源代码,它实现了抽象来处理键盘事件。
在 GitHub 上进行的搜索将向您展示他们如何为各种平台实现GLFW_KEY_DOWN
。
相关文章:
- 问:通过 Apache Arrow 在 C++ 中将 PARQUET 转换为 JSON?
- 在现有的C++可执行项目CMAKE中构建Apache Arrow
- 问:Apache Arrow 数组生成器不安全追加
- 来自iostream或内存缓冲区的Apache Arrow表
- 如何在python中的PyArrow和C++中的Arrow之间进行交互时将PyArrow表转换为Arrow表
- 用于"Ctrl + left arrow"和"Ctrl + right arrow"的八进制代码
- 将SDL2 Arrow/WASD键转换为玩家运动的最佳/最坚实的方法是什么?
- cuda错误Cudart卸载(错误29)由于"driver shutting down"
- C++ OpenCV Reading HaarCascades Slowing Down Computer
- 检查并比较是否在C++控制台应用程序中按下了"down arrow"键?
- unique_ptr如何同时支持 "dot" 和"arrow"调用以及未定义的方法?