最速怪談選手権

C言語で壁に向かって衝突していくボールをタイミングよくスペースキーを押すことで打ち返すプログラムを作っています(多分実行しないと分かりにくいかも)。

そこでキーの入力にgetch()関数を使っていますが、これだと何かキーが入力されるまで永遠と待ち続けてしまうので、タイミングが100%合ってしまいます。
そこで指定された秒数だけキーの入力を受け付けるような方法を探しているのですが、そのようなものはあるのでしょうか?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <windows.h>

int main(void){
int key=0,ballichi=0,i,i2;
system("cls");//画面の初期化

for(i=0;i<10;i++){
for(i2=0;i2<10;i2++){
if(ballichi==i2){printf(" o");
}else{printf(" ");}
}
printf("|壁");

if(i==9){
key = getch(); //キーから一文字入力
switch (key) { /* キー入力チェック */
case ' ':
printf("スペースキーが押されました");
break;
}
}
Sleep(500);
ballichi++;
system("cls");
}
return 0;
}

A 回答 (1件)

getch( ) が使えるなら、


kbhit( ) も使えると思います。
kbhit でキー入力があったかどうかを調べることができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!