防闪屏批量绘图
在使用Easy库的时候,由于每次都花大量时间绘制背景,导致闪烁厉害。这里用批量绘图方法将所有绘图一次性显示出来,以解决闪烁的问题。
BeginBatchDraw
这个函数用于开始批量绘图。执行后,任何绘图操作都将暂时不输出到屏幕上,直到执行 FlushBatchDraw 或 EndBatchDraw 才将之前的绘图输出。
void BeginBatchDraw();参数:
(无)
返回值:
(无)
示例:
以下代码实现一个圆从左向右移动,会有比较明显的闪烁。
请取消 main 函数中的三个注释,以实现批绘图功能,可以消除闪烁。
#include <graphics.h>
int main()
{
initgraph(640,480);
setlinecolor(WHITE);
setfillcolor(RED);
// BeginBatchDraw();
for(int i=50; i<600; i++)
{
circle(i, 100, 40);
floodfill(i, 100, WHITE);
// FlushBatchDraw();
Sleep(10);
cleardevice();
}
// EndBatchDraw();
closegraph();
}
EndBatchDraw
这个函数用于结束批量绘制,并执行未完成的绘制任务。
// 结束批量绘制,并执行未完成的绘制任务 void EndBatchDraw();// 结束批量绘制,并执行指定区域内未完成的绘制任务
void EndBatchDraw(
int left,
int top,
int right,
int bottom );
参数:
left
指定区域的左部 x 坐标。
top
指定区域的上部 y 坐标。
right
指定区域的右部 x 坐标。
bottom
指定区域的下部 y 坐标。
返回值:
(无)
参考博客:
转载自EasyX 官方网站中的文章一步步拓展程序,实现文字在背景上的移动