在游戏中显示帧的最快方式

时间:2013-01-23 08:37:24

标签: c++ c

我正在使用system("cls")printf制作游戏。 我有一个二维的字符数组。 我每隔0.5秒刷新一次屏幕并显示整个区域,但屏幕闪烁严重。 无论如何,我可以让它顺利 我的操作系统是Windows。

2 个答案:

答案 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。你可以直接写这个,因为它不可见。准备好新帧后,将可见缓冲区与第二个缓冲区交换。这会立即显示新帧,您现在可以在原始缓冲区中绘制。

这种技术被广泛使用,被称为双缓冲