c - Ncurses 窗口缩放

标签 c linux ncurses

我正在使用 ncurses 在 c 上创建游戏,但是我根据游戏设置(LINES AND COLS)创建的窗口太小,很难看到游戏中发生了什么。 有什么方法可以增加窗口的大小(不改变 LINES 和 COLS)以使窗口更明显并允许用户看到游戏中发生了什么?

代码:

void drawGame(RESPONSE resp) {
int i, j;
WINDOW *game_win;
init_pair(2, COLOR_WHITE, COLOR_GREEN);
game_win = newwin(resp.width, resp.height, 1, 1);
wbkgd(game_win, COLOR_PAIR(2));
keypad(game_win, TRUE);
noecho();
curs_set(FALSE);

for (int i = 0; i < resp.width; ++i) {
    for (int j = 0; j < resp.height; ++j) {
        if (resp.maze[i][j].type == indestrutiveBlock)
            mvwaddch(game_win, i, j, '#');
        if (resp.maze[i][j].type == destrutiveBlock)
            mvwaddch(game_win, i, j, '*');
        if (resp.maze[i][j].type == object)
            mvwaddch(game_win, i, j, '@');
        if (resp.maze[i][j].type == enemy)
            mvwaddch(game_win, i, j, 'e');
        if (resp.maze[i][j].type == emptyBlock)
            mvwaddch(game_win, i, j, '.');
    }
}

wrefresh(game_win);
}

最佳答案

您可以为使用这些调用绘制的文本使用粗体或反转(或什至其他颜色)等视频高亮显示:

            mvwaddch(game_win, i, j, '.');

最后一个参数不只是一个字符,它可以有与之组合的标志,例如,

            mvwaddch(game_win, i, j, '.' | A_REVERSE | A_BOLD);

关于c - Ncurses 窗口缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47848401/

相关文章:

c++ - 构建后 ncurses 无法正常工作

c - Perl TCP 套接字编程 vs C recv() 函数。我需要跟踪收到的字节数吗?

c - 仅当我在我的 C 项目中使用代码时出现的 list.h 语法错误

linux - 挂载目录?

c++ - 您如何管理日志记录性能?

c - 使用比 ncurses 窗口更多的行

c - 删除已在 ncurses 终端中打印的字符

c - 什么是最合适的结构 sizeof 方法

c++ - OpenMP 临界区带来意想不到的性能提升

c - 在线评判超过时间限制