ncurses.h не выводит изменение цвета в c - PullRequest
1 голос
/ 03 марта 2020

Я стараюсь, чтобы текст в моей игре исчезал, когда мой игрок выбирает «играть». Для этого я подумал о постепенном изменении цветового значения текста на черный. Ниже я выбрал часть своего кода, которая включает в себя изменение значений цвета. Когда вы запускаете программу, она ничего не выводит. Я считаю, что это как-то связано с использованием переменной 'i' внутри функции init_color (). Любая помощь будет принята с благодарностью

#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;
}

1 Ответ

1 голос
/ 03 марта 2020

for l oop не будет работать. for(i = 1000; i < 0; --i) не имеет смысла, вы, вероятно, хотите использовать > вместо <.

Кроме того, .2 секунды слишком медленно для for l oop, который будет работать 1000 раз , На 0,2 секунды это займет ваши l oop 200 секунд для завершения.

...