我创造了一个像键盘版吉他英雄一样的小游戏。我差不多完成了,但我只是对一件事感到困惑。我想不断检查玩家是否按下键盘上的任何东西,看看他们是否按下了正确的键,但我已经有一个循环,每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;
该功能继续,但它只是重复检查所有字母。
任何帮助将不胜感激,谢谢!