zoukankan      html  css  js  c++  java
  • 防闪屏批量绘图

    在使用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 官方网站中的文章一步步拓展程序,实现文字在背景上的移动

  • 相关阅读:
    强弱类型 静态语言 动态语言 || 脚本语言
    mysql版本升级问题处理
    word
    IntelliJ IDEA 插件
    dubbo
    spring源码构建
    zookeeper 本地多线程模拟分布式事务控制及配置中心
    一次性关闭所有的Activity
    可能以后用得到得东西
    Thread.sleep还是TimeUnit.SECONDS.sleep
  • 原文地址:https://www.cnblogs.com/TaoR320/p/12680194.html
Copyright © 2011-2022 走看看