我正在使用 ncurses.h 为游戏构建菜单。在这一部分中,我希望屏幕上出现一个闪烁的文本,并且只有在用户按下任意键时才退出该循环。在 conio.h 中,我使用了这个(不完美):
void start()
{
int i;
for (i = 0; i < 10; i++)
{
gotoxy(32, 18 - i);
printf("1024");
Sleep(200);
clrscr();
}
gotoxy(32, 8);
printf("1024");
gotoxy (35, 18);
while (!kbhit())
{
textcolor(15);
gotoxy (15, 15);
printf("Press any key to continue...");
if (kbhit() != 0)
Sleep(1000);
textcolor(0);
gotoxy (15, 15);
printf("Aperte qualquer tecla para continuar...");
if (kbhit() != 0)
break;
Sleep(500);
if (kbhit() != 0)
break;
}
textcolor(15);
fflush(stdin);
clrscr();
}
在 ncurses.h 中,我正在尝试做同样的事情,但 getch() 似乎在等待用户输入,因此“暂停”执行。
void start()
{
int i, ch = 0;
for (i = 0; i < 10; i++)
{
attron(COLOR_PAIR(2));
move(18 - i, 32);
printw("1024");
refresh();
usleep(200 * 1000);
clear();
refresh();
}
move(18, 35);
while (1)
{
if (getch() != 0)
break;
attron(COLOR_PAIR(2));
move(15, 15);
printw("Aperte qualquer tecla para continuar...");
refresh();
usleep(1000 * 1000);
clear();
refresh();
move(15, 15);
printw("Aperte qualquer tecla para continuar...");
usleep(500 * 1000);
}
attroff(COLOR_PAIR(2));
system("clear");
}
解决方案?谢谢!