我正在使用system("cls")
和printf
制作游戏。
我有一个二维的字符数组。
我每隔0.5秒刷新一次屏幕并显示整个区域,但屏幕闪烁严重。
无论如何,我可以让它顺利
我的操作系统是Windows。
答案 0 :(得分:5)
使用ncurses(或pdcurses,可能更容易在Windows上设置。)如果你不能,那么不要清除屏幕,因为这会导致闪烁。而是将光标再次置于左上角(0,0),然后绘制。要将光标定位在0,0,您可以执行以下操作:
#include <windows.h>
// ...
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
COORD position = {0, 0};
SetConsoleCursorPosition(handle, position);
答案 1 :(得分:1)
另一种选择是create a second screen buffer。你可以直接写这个,因为它不可见。准备好新帧后,将可见缓冲区与第二个缓冲区交换。这会立即显示新帧,您现在可以在原始缓冲区中绘制。
这种技术被广泛使用,被称为双缓冲。