我试图建立一个原始的蛇游戏。
函数void Input()
调用_kbhit()
和_getch()
但问题是我无法实现这些功能,因为conio.h并不包含在linux的gcc包中。是否有其他方法可以在不使用_kbhit()
头文件的情况下完成_getch()
和conio
的任务?
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;
}
}
}
答案 0 :(得分: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");
}
}