Ncurses ライブラリを使用して C++ で Pacman を作成しています。私のコードでパックマンを動かすことはできますが、異なる方向に切り替えるには多くの時間がかかります。たとえば、パックマンが左に移動しているときに右矢印キーを押すと、右に移動するまでに時間がかかります。
if (ch==KEY_LEFT)
{
int b,row,column;
getyx(stdscr,row,column);
for (b=column;b>=0;b-=1) //loop to move the pacman left until it hits the wall
{
mvprintw(row,b,">"); //print the ">" symbol
refresh();
waitf(0.2);
attron(COLOR_PAIR(1)); //this pauses the game for 1 second
mvprintw(row,b,">");
attroff(COLOR_PAIR(1));
refresh();
waitf(0.2);
mvprintw(row,(b),"O"); //showing the open mouth of pacman
refresh();
waitf(0.2);
attron(COLOR_PAIR(1));a
mvprintw(row,(b),"O");
attroff(COLOR_PAIR(1));
int h=0;
h=getch();
if (h!=KEY_LEFT)
{
break;
}
}
}
right=getch();
loop for right in an if condition
up=getch();
loop for up in an if condition
down=getch();
loop for moving down in an if condition
右、上、下についても同じことをしました。また、getch() の値を格納するために、すべての if ステートメントの前に新しい変数を導入しました。