有没有更简单的方法让键盘输入返回一个字符(SFML)?

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

我想使用键盘输入作为功能的参数。我正在尝试获取一个返回char的键盘输入:按下的键。

比我现在有更好的方法吗?

char getKey() {
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
    {
        return 'A';
    } 
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
    {
        return 'A';
    }
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::B))
    {
        return 'B';
    }
    if (sf::Keyboard::isKeyPressed(sf::Keyboard::C))
    {
        return 'C';
    }

    //...

    return '\0';
}

我知道您可以使用TextEntered,但是我不想获取其他ASCII键(å,∫,ç,...)

是否有一种更简单的方法而无需仔细阅读每个字母?

c++ sfml
1个回答
0
投票

您可以只处理代码中的事件

while (window.pollEvent(event)) 
{
    if (event.type == sf::Event::Closed)
    {
        window.close();
        break;
    } 
    else if(event.type == sf::Event::KeyPressed)
    {
        const sf::Keyboard::Key keycode = event.key.code;
        if (keycode == sf::Keyboard::A) 
            std::cout << "A is pressed";
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.