检查并比较在C ++控制台应用程序中是否按下了“向下箭头”键?

时间:2016-03-15 21:21:07

标签: c++

我有一个不错的菜单系统,我想在选择时围绕防守移动箭头。我正在测试这个,所以我只有一个针对向下键的情境构建,但最终我会有向下和向上箭头。

我得到了它的工作,因为我按下向下键后想出来,选择是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;

我的理论是当按下向下键时,移动'&gt;'在char数组中,然后当显示菜单时,它将显示'&gt;'或者是一个空间,给人一种在菜单选项中移动的错觉。当然,我似乎无法找到检测向下箭头的方法。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

这取决于平台。

我建议你看看source code of the OpenGL library glfw,它实现抽象来处理键盘事件。

This search on GitHub将向您展示他们如何为各种平台实施GLFW_KEY_DOWN