小惑星の射手を作っているうちに、_kbhit()
とkbhit()
を使って周りに来ました。 、kbhitと複数の関数呼び出しがあります
int run = 1;
int main() {
while(run){
if(GetUserInput() == 2)
printf("W");
if(GetUserInput() == 1)
printf("S");
Sleep(50);
}
}
int GetUserInput(){
if(kbhit()){
char c = _getch();
if(c == 's')
return 2;
if(c == 'w')
return 1;
}
else
return 0;*
}
だから、私が起こっている何を考えて、それはGetUserInput()
上の最初のチェックを行い、かつのでgetch()
の性質:私は専門家だが、ここで私は私が持っていると思う問題がありますキーボードはバッファから読み込まれ、破棄されますか?とにかく、私はc
に値を保存し、適切に返す必要があります。しかし、それは最初のチェックしか行いません。最初のチェック(main()
関数内)後にバッファに入力がなくなるためですか? 、かどうかを確認
if(GetUserInput() == 2)
printf("W");
if(GetUserInput() == 1)
printf("S");
は、例えば、私はあなたが鍵を読み、「S」を押します。
あなたは「最初のチェック」とはどういう意味ですか?ループ内で 'if(_kbhit())'/'_getch()'コンビネーションを使って複数の文字を読み込むことができます。 –