在已经循环的同时不断检查键盘输入

时间:2016-03-08 01:11:38

标签: c

我创造了一个像键盘版吉他英雄一样的小游戏。我差不多完成了,但我只是对一件事感到困惑。我想不断检查玩家是否按下键盘上的任何东西,看看他们是否按下了正确的键,但我已经有一个循环,每1秒睡一次以更新游戏,所以我不能再运行另一个循环同时要不断检查键盘输入(或者我可以吗?)。我尝试将键盘检查放在游戏循环中,但由于它每秒都会睡觉,所以当玩家按下按键时,它有时无法捕捉。 这是我的while循环:

while (playing)
{
    updateBoard(score, game);
    checkKeyPress(game);
    Sleep(time);
    if (rand() % 2 == 1)
        spawnNewLetter(game);
}

updateBoard只是打印出新的主板,spawnNewLetter只是为了生成一个新的字母落在板上,而checkKeyPress是检查键盘输入,就是这样:

void checkKeyPress(char game[GAME_ROW][GAME_COL])
{
    if (_kbhit())
    {
        switch (_getch())
        {
        case 97:
            checkLetter(game, 'a');
            break;
        case 98:
            checkLetter(game, 'b');
            break;

该功能继续,但它只是重复检查所有字母。

任何帮助将不胜感激,谢谢!

0 个答案:

没有答案