防闪屏批量绘图
发布日期:2021-05-04 18:35:15 浏览次数:15 分类:技术文章

本文共 969 字,大约阅读时间需要 3 分钟。

在使用Easy库的时候,由于每次都花大量时间绘制背景,导致闪烁厉害。这里用批量绘图方法将所有绘图一次性显示出来,以解决闪烁的问题。

BeginBatchDraw

这个函数用于开始批量绘图。执行后,任何绘图操作都将暂时不输出到屏幕上,直到执行 FlushBatchDraw 或 EndBatchDraw 才将之前的绘图输出。

void BeginBatchDraw();参数:

(无)

返回值:

(无)

示例:

以下代码实现一个圆从左向右移动,会有比较明显的闪烁。

请取消 main 函数中的三个注释,以实现批绘图功能,可以消除闪烁。

#include 
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 坐标。

返回值:

(无)

参考博客:

转载自中的文章

上一篇:int 越界处理
下一篇:VC 下如何正确的创建及管理项目

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月19日 22时05分52秒