当我按某个键时做某事?

时间:2017-11-12 12:41:58

标签: c windows visual-studio

如何让程序识别我按下的某些键? 要了解上下文:我想在C(非常基本的游戏)中制作一个游戏,所以为了移动对象,我想要(WASD),我知道如何移动它,但我不知道如何当按下其中一个键时,让程序理解我想做某个动作。 例如:

if( key == "A"){
x++
}

我知道这不是那样的,但至少有类似的东西。

3 个答案:

答案 0 :(得分:1)

您可以包括conio.h(在Windows上)或ncurses.h库(在Linux上),并使用getch()等函数返回用户按下的字符。然后你可以检查char是否是你想要的。

答案 1 :(得分:1)

您可以使用上面评论中提到的maxWaitTimeouts中包含的kbhit。一个简单的示例如下所示。

conio.h

我认为link会对您有所帮助。

答案 2 :(得分:1)

#include <stdio.h>
#include <conio.h> /* getch() and kbhit() */

int main()
{
    char c;

    for(;;){
        if(kbhit()){
            c = getch();
            if(c == 'c')
            {
                printf("%c\n", c);

               // more code here..
            }
         }
    }
    return 0;
}

作为上面的答案,但每当按下一个键时,代码必须处于无限循环中才能扫描。并且代码只会检查密钥是否为&#39; c&#39;被压了。你可以轻松删除if条件并使其更通用:)