欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c/c++控制台闪屏游戏开发(几行代码解决问题)(双缓冲技术)

程序员文章站 2022-07-05 12:35:32
...

防止控制台闪屏语句代码:直接拿来用就好了,不要去专研里面语句的一些基本用法,实在是没有必要
以下代码放到主函数开头部分

/获取默认标准显示缓冲区句柄
	HANDLE hOutput;
	COORD coord = { 0, 0 };
	hOutput = GetStdHandle(STD_OUTPUT_HANDLE);

	//创建新的缓冲区
	HANDLE hOutBuf = CreateConsoleScreenBuffer(
		GENERIC_READ | GENERIC_WRITE,
		FILE_SHARE_READ | FILE_SHARE_WRITE,
		NULL,
		CONSOLE_TEXTMODE_BUFFER,
		NULL
	);

	//设置新的缓冲区为活动显示缓冲
	SetConsoleActiveScreenBuffer(hOutBuf);

	//隐藏两个缓冲区的光标
	CONSOLE_CURSOR_INFO cci;
	cci.bVisible = 0;
	cci.dwSize = 1;
	SetConsoleCursorInfo(hOutput, &cci);
	SetConsoleCursorInfo(hOutBuf, &cci);

	//双缓冲处理显示
	DWORD bytes = 0;
	char data[3200];

最后两行代码放到主函数末尾(主函数前一个大括号里面)

ReadConsoleOutputCharacterA(hOutput, data, 3200, coord, &bytes);
WriteConsoleOutputCharacterA(hOutBuf, data, 3200, coord, &bytes);
相关标签: vs编程