c - linux 终端动画 - 延迟打印 'frame' 的最佳方式(在 C 中)

标签 c linux animation terminal

我正在为终端开发一个简单的 pong 克隆,需要一种方法来延迟“框架”的打印。

我有一个二维数组

screen[ROWS][COLUMNS]

还有一个打印屏幕的函数

void printScreen() {
    int i = 0;
    int j;

    while(i < ROWS) {
        j = 0;

        while(j < COLUMNS) {
            printf("%c", screen[i][j]);
            j++;
        }
        i++;
    }
}

好像我做的时候

printScreen();
usleep(1000000);
printScreen();

它将休眠 printScreen() 期间执行。

任何在终端上制作此类动画的技巧都将不胜感激。也许我做的完全错了。 ASCII 电影是如何完成的 like this

编辑 我要使用 ncurses。谢谢两位的建议。

在 Ubuntu 上 sudo aptitude install libncurses5-dev 并使用 -lncurses 编译。

最佳答案

Ascii 电影是用 aalib 完成的,它的工作方式类似于图形显示驱动程序。大多数开发完整的控制台应用程序和游戏的人都使用 curses 框架或类似 ncurses 的版本。走那条路的一个真正限制是你必须想要完整的 ptty(你不能参与其中)。

关于c - linux 终端动画 - 延迟打印 'frame' 的最佳方式(在 C 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2076380/

相关文章:

几次 setAnimation 调用后 Android View 旋转没有发生

c - 从 1..N 中找出缺失的数字

python - 运行 python 脚本,但指向另一个 python 安装

linux - mmap 搞乱 - 导致内核挂起

objective-c - iOS - 2d 图像变成 3d

c++ - Qt 显示一半的小部件

c - C 中的严格类型指针(假设)

c - 如何保存 IplImage?

c - 为什么 setitimer 和 dup2 在 execvp 之后为子进程工作?

linux - 管道查看器在被告知时不会复制文件