ncurses.h 不在 c 中输出颜色变化
ncurses.h not outputting color change in c
我试图让我的游戏中的文本在我的玩家选择 "play" 时消失。为此,我想到了将文本的颜色值慢慢更改为黑色。下面,我选择了我的代码中涉及更改颜色值的部分。当你 运行 程序时,它不会输出任何东西。我相信这与在 init_color() 函数中使用变量 'i' 有关。任何帮助将不胜感激
#include <ncurses.h>
#include <unistd.h>
#define SLOW_ROLL usleep(200000)
#define BORDER_INSIDE_Y 40
int main()
{
int i, row, col;
initscr(); // Begin ncurses
cbreak();
keypad(stdscr, TRUE);
curs_set(0);
noecho();
getmaxyx(stdscr, row, col);
start_color();
init_pair(1, COLOR_RED, COLOR_BLACK);
for(i = 1000; i < 0; --i)
{
init_color(COLOR_RED, i, 0, 0);
attron(COLOR_PAIR(1));
mvprintw((row / 2) - (BORDER_INSIDE_Y / 2) + 10, (col / 2) - 11, "Welcome to The Game");
attroff(COLOR_PAIR(1));
SLOW_ROLL; // usleep function for about .2 seconds
refresh();
}
return 0;
}
for
循环不会 运行。 for(i = 1000; i < 0; --i)
没有意义,您可能是想使用 >
而不是 <
。
此外,对于将 运行 1000 次的 for
循环来说,0.2 秒太慢了。在 0.2 秒,你的循环需要 200 秒才能完成。
我试图让我的游戏中的文本在我的玩家选择 "play" 时消失。为此,我想到了将文本的颜色值慢慢更改为黑色。下面,我选择了我的代码中涉及更改颜色值的部分。当你 运行 程序时,它不会输出任何东西。我相信这与在 init_color() 函数中使用变量 'i' 有关。任何帮助将不胜感激
#include <ncurses.h>
#include <unistd.h>
#define SLOW_ROLL usleep(200000)
#define BORDER_INSIDE_Y 40
int main()
{
int i, row, col;
initscr(); // Begin ncurses
cbreak();
keypad(stdscr, TRUE);
curs_set(0);
noecho();
getmaxyx(stdscr, row, col);
start_color();
init_pair(1, COLOR_RED, COLOR_BLACK);
for(i = 1000; i < 0; --i)
{
init_color(COLOR_RED, i, 0, 0);
attron(COLOR_PAIR(1));
mvprintw((row / 2) - (BORDER_INSIDE_Y / 2) + 10, (col / 2) - 11, "Welcome to The Game");
attroff(COLOR_PAIR(1));
SLOW_ROLL; // usleep function for about .2 seconds
refresh();
}
return 0;
}
for
循环不会 运行。 for(i = 1000; i < 0; --i)
没有意义,您可能是想使用 >
而不是 <
。
此外,对于将 运行 1000 次的 for
循环来说,0.2 秒太慢了。在 0.2 秒,你的循环需要 200 秒才能完成。