2017-02-19 45 views
0

私はプリミティブなスネークゲームを構築しようとしています。 関数void Input()_kbhit()_getch() を呼び出しますが、問題は、conio.hがlinuxのgccパッケージに含まれていないためにこれらの関数を実装できないことです。 conioヘッダーファイルを使用せずに_kbhit()_getch()のタスクを実行する別の方法はありますか?LinuxでC++でkbhit()とgethch()を実装する方法

void Input() // handle controls 
{ 
if(_kbhit()) // boolean positive if key is pressed 
{ 
switch(_getch()) // gets ascii val of key pressed 
{ 
     case 'a': 
     dir = LEFT; 
     break; 

     case 'd': 
     dir = RIGHT; 
     break; 

     case 'w': 
     dir = UP; 
     break; 

     case 's': 
     dir = DOWN; 
     break; 

     case 'x': 
     gameOver = true; 
     break; 
    } 
} 
} 

答えて

1

これらの関数は「不正」なもので、標準のC++ではこれ以上使用されません。

ncursesライブラリが役立ちます。

ncursesは、ところで、TRUEとFALSEを定義します。正しく設定されたncursesは、ncursesのboolに同じデータ型を使用します。これは、ncursesの設定に使用されるC++コンパイラと同じです。ここで

はncursesのはconio例のように使用することができる方法を示す例です。

#include <ncurses.h> 
int main() 
{ 
initscr(); 
cbreak(); 
noecho(); 
scrollok(stdscr, TRUE); 
nodelay(stdscr, TRUE); 
while (true) { 
    if (getch() == 'g') { 
     printw("You pressed G\n"); 
    } 
    napms(500); 
    printw("Running\n"); 
} 
} 
+1

は再び質問を読んで、GetAsyncKeyState()はWinAPIのの一部であり、彼は、Linuxのために何かを望んでいます – CrizerPL

関連する問題