2012-02-17 15 views
5

私は現在、WindowsのC++でゲームを書いています。すべては、これまで偉大な起こっているが、私のメニューは次のようになります。C++で直接キーボード入力を取得するには?

1.Go北

2.Go南

3.Go東

4.Go北

インベントリ

6.Exit

インサートの選択 -

それはうまくいきますが、私はその種のものをしばらく使用していましたが、上下の矢印でナビゲートすることができます。これをどうやってやりますか? Windowsので事前

+0

わからない場合:

は、ここでの実装例です。だから、どのプラットフォーム?また、何を試しましたか? –

+0

非常に似たような質問:http://stackoverflow.com/questions/9324806/how-to-read-standard-input-continuously – BoBTFish

答えて

2

よろしく、あなたは一般的なkbhit()機能を使用することができます。この関数は、キーボードヒットがあるかどうかによってtrue/falseを返します。次に、getch()関数を使用して、バッファーにあるものを読み取ることができます。

while(!kbhit()); // wait for input 
c=getch();  // read input 

また、スキャンコードを見ることもできます。 conio.hには必要な署名が含まれています。

4

ncursesなどのコンソールUIライブラリを使用することを検討しましたか?

0

GetAsyncKeyStateを使用できます。矢印、ファンクションボタン(F0、F1など)などのボタンから直接キーボード入力を取得できます。矢印は同じプラットフォーム間に処理され

// Needed for these functions 
#define _WIN32_WINNT 0x0500 
#include "windows.h" 
#include "winuser.h" 
#include "wincon.h" 

int getkey() { 

    while(true) { 
     // This checks if the window is focused 
     if(GetForegroundWindow() != GetConsoleWindow()) 
      continue; 

     for (int i = 1; i < 255; ++i) { 
      // The bitwise and selects the function behavior (look at doc) 
      if(GetAsyncKeyState(i) & 0x07) 
       return i; 

     } 

     Sleep(250); 
    } 
} 
関連する問題