首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >保持C语言的纵横比(ncurses)

保持C语言的纵横比(ncurses)
EN

Stack Overflow用户
提问于 2018-06-03 05:17:29
回答 1查看 149关注 0票数 0

我需要在C中使用ncurses制作一个游戏,游戏需要80(char)x24(char)。我需要一个状态栏在底部(5个字符),所以我硬编码了它。

我做了这个循环来集中处理,但我不知道如何在调整终端屏幕大小时保持宽高比。

有没有办法使用ncurses来做这件事?

我需要屏幕始终保持至少80x24,也许总是使用全屏模式,我真的不需要调整屏幕大小。

这是一个循环来保持它们的位置(状态栏硬编码很差,纵横比是一团糟)

代码语言:javascript
复制
/* LOOP TO CENTRALIZE FOR ANY RESIZING */
  while (1){
    getmaxyx(stdscr, yMax, xMax);
    clear();
    mvprintw(yMax/24, xMax/80, "BEG");
    mvprintw(yMax/2, xMax/2, "CENTER %d %d", yMax, xMax);

    attron(COLOR_PAIR(1)); /* bottom status bar (5 lines) */
    int i, j;
    for ( j=(yMax-5) ; j <= yMax ; j++){

      for ( i=0 ; i <= xMax ; i++ ){
        mvprintw(j, i, " ");
      }

    }
    attroff(COLOR_PAIR(1));
    refresh();
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 09:07:21

除非您的程序读取输入,例如调用getch,ncurses将继续使用原始屏幕大小(看起来很困惑)。当您在ncurses收到SIGWINCH之后调用getch时,它会返回KEY_RESIZE,此时ncurses会更新其屏幕大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50661248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档