我正在使用 Ncurses 库在 C++ 中制作 Pacman。我可以用我的代码移动 Pacman,但我想移动它,这样即使我没有按任何键,当我按下另一个方向键时,pacman 也会继续移动,它会改变方向。现在,当我按下一个键时,pacman 只需要一步。此外,在 pacman 朝那个方向移动之前,我必须按下一个键 2 或 3 次。
if (ch==KEY_LEFT)
{
int b,row,column;
getyx(stdscr,row,column);
int h;
do // do-whileloop to move the pacman left until it hits the wall
{
column-=1;
mvprintw(row,column,">"); //print the ">" symbol
refresh();
waitf(0.1); //this pauses the game for 0.1sec
attron(COLOR_PAIR(1));
mvprintw(row,column,">");
attroff(COLOR_PAIR(1));
refresh();
waitf(0.1);
mvprintw(row,(b),"O"); //showing the open mouth of pacman
refresh();
waitf(0.1);
attron(COLOR_PAIR(1));a
mvprintw(row,column,"O");
attroff(COLOR_PAIR(1));
h = getch();
}
while(h == KEY_LEFT);
}
right = getch();
循环在 if 条件下向右移动
up = getch();
在 if 条件下循环向上移动
down = getch();
oop 在 if 条件下向下移动。