在c ++中检测按键时有问题

问题描述 投票:0回答:1

我正在尝试用C ++做一个简单的游戏,为此,我必须检测按键(特别是对上,下,左和右感兴趣)。为此,我做了以下]]

#include <iostream>
#include <conio.h>
using string = std::string;

const int K_UP = 72;
const int K_DOWN = 80;
const int K_LEFT = 75;
const int K_RIGHT = 77;

string get_pressed()
{
    if (K_UP == _getch());
    {
        return "UP";
    }
    if (K_DOWN == _getch());
    {
        return "DOWN";
    }
    if (K_RIGHT == _getch());
    {
        return "RIGTH";
    }
    return "LEFT";

}

int main()
{
    cout << "MOVING" << get_pressed() << endl;
}

但是,无论我按什么,输出都是“ MOVING UP”。另外,当我在阅读“如何检测按键”时,我看到Windows是向上键输入的数字72,但是当我尝试打印_getch()时然后按向上键,它会给我244,并且在向右,向左和向下时也是如此。我对这里发生的事情感到困惑,任何帮助将不胜感激。谢谢

我正在尝试用C ++做一个简单的游戏,为此,我必须检测按键(特别是对上,下,左和右感兴趣)。为此,我做了以下#include #...

c++ key keypress
1个回答
1
投票

((可能)您正在混淆键代码和ASCII代码。 c / c ++方法基本上只支持密钥的ascii代码,而您正在阅读的文档则是原始密钥的代码。

© www.soinside.com 2019 - 2024. All rights reserved.