Ncurses - 空白 Window 在初始化我的 Window 之前等待按钮按下
Ncurses - Blank Window That Wait for Button Press Before Initilizing my Window
我目前正在使用 ncurses 尝试制作游戏。我试图强制用户按键盘上的 ENTER 键开始,但似乎 运行 遇到了一些问题。当我为选项创建一个开关盒时,它不会显示我的初始屏幕 window,直到我按下一个按钮。在不执行任何类型的用户输入的情况下,它会在程序 运行.
的瞬间显示启动画面
我已经包括了我的主要和我的选择功能。 totalInformation、gameTitle等函数只是图形,并不重要
我的主要:
int main(void)
{
initscr();
WINDOW * opening_screen;
keypad(stdscr, TRUE);
noecho();
cbreak();
raw();
start_color();
int height, width, start_y, start_x;
width = 80;
height = 40;
start_y = 0;
start_x = 0;
init_pair(1, COLOR_CYAN, COLOR_CYAN);
opening_screen = newwin(width, height, start_y, start_x);
refresh();
keypad(opening_screen, true);
choices(opening_screen);
wrefresh(opening_screen);
totalInformation();
wrefresh(opening_screen);
border('|', '|', '-', '-', '+', '+', '+', '+');
wrefresh(opening_screen);
attron(COLOR_PAIR(1));
gameTitle();
wrefresh(opening_screen);
attroff(COLOR_PAIR(1));
attron(A_BLINK);
mvaddstr(37, 24, "Press the ENTER key to continue");
attroff(A_BLINK);
wrefresh(opening_screen);
getch();
endwin();
}
我的选择函数:
void choices(WINDOW * screen)
{
int c = wgetch(screen);
switch(c)
{
case 10:
mvaddstr(3,3,"YOUVE PRESSED ENTER");
break;
default:
break;
}
}
现在,当这 运行 秒时,黑屏启动程序。在我按下 ENTER 后,我的全屏和 "YOUVE PRESSED ENTER".
一起弹出
当 curses 启动时,屏幕最初是空白的,但程序必须刷新(重新绘制)屏幕才能到达那个点。 wgetch
调用重绘(并在终端上清除)opening_screen
,然后 mvaddstr
调用更新主 window stdscr
。
最后,getch
调用刷新(即 repaints)主 window stdscr
,并遮盖了另一个 windows。
我目前正在使用 ncurses 尝试制作游戏。我试图强制用户按键盘上的 ENTER 键开始,但似乎 运行 遇到了一些问题。当我为选项创建一个开关盒时,它不会显示我的初始屏幕 window,直到我按下一个按钮。在不执行任何类型的用户输入的情况下,它会在程序 运行.
的瞬间显示启动画面我已经包括了我的主要和我的选择功能。 totalInformation、gameTitle等函数只是图形,并不重要
我的主要:
int main(void)
{
initscr();
WINDOW * opening_screen;
keypad(stdscr, TRUE);
noecho();
cbreak();
raw();
start_color();
int height, width, start_y, start_x;
width = 80;
height = 40;
start_y = 0;
start_x = 0;
init_pair(1, COLOR_CYAN, COLOR_CYAN);
opening_screen = newwin(width, height, start_y, start_x);
refresh();
keypad(opening_screen, true);
choices(opening_screen);
wrefresh(opening_screen);
totalInformation();
wrefresh(opening_screen);
border('|', '|', '-', '-', '+', '+', '+', '+');
wrefresh(opening_screen);
attron(COLOR_PAIR(1));
gameTitle();
wrefresh(opening_screen);
attroff(COLOR_PAIR(1));
attron(A_BLINK);
mvaddstr(37, 24, "Press the ENTER key to continue");
attroff(A_BLINK);
wrefresh(opening_screen);
getch();
endwin();
}
我的选择函数:
void choices(WINDOW * screen)
{
int c = wgetch(screen);
switch(c)
{
case 10:
mvaddstr(3,3,"YOUVE PRESSED ENTER");
break;
default:
break;
}
}
现在,当这 运行 秒时,黑屏启动程序。在我按下 ENTER 后,我的全屏和 "YOUVE PRESSED ENTER".
一起弹出当 curses 启动时,屏幕最初是空白的,但程序必须刷新(重新绘制)屏幕才能到达那个点。 wgetch
调用重绘(并在终端上清除)opening_screen
,然后 mvaddstr
调用更新主 window stdscr
。
最后,getch
调用刷新(即 repaints)主 window stdscr
,并遮盖了另一个 windows。