由 EasyX 二次开发的渲染库
大家好,这里是【六月】的首次发帖。下面进入正题:
它是一个类。(需要使用 Visual Studio VC++)
那么,它实现了什么?
简单来说,它所做到的有点类似带有 id 的 HTML tag。就是说,屏幕上显示的任何事物都被“对象化”了。所有显示在屏幕上的都可以被篡改,而不是被覆盖。
举个例子吧,比较直观:
一般您使用 EasyX 进行绘图时,想要画一个矩形,然后在某一刻,矩形改变颜色。
(不假定已经初始化 initgraph)
EasyX 一般实现逻辑:
initgraph(...)
声明并定义改变前后的两种颜色;
建立一个 while 循环以实现帧循环;
开始计时器(或者一个 if),当到达您想要改变颜色的时间点时,setfillcolor。
(可能需要 _getch();)
closegraph()
本类的实现逻辑:
创建渲染窗口:WindowProc wnd(640, 480, 0xffffff);
声明矩形对象并定义初始颜色:IP_Rectangle rect = IP_Rectangle(/* 构造函数参数中有颜色设置 */);
定义您的改变后颜色
传入对象:wnd.AddElement(&rect);
定义一个代码块进行计时/if 判断,就可以为您的矩形对象更改颜色;
(可能需要 _getch();)
虽然看起来步骤数量差不多,但使用本类将不用考虑任何帧循环和帧渲染,对于您想要实现如【背景图片】等静态物体的渲染很有帮助,代码将不用考虑帧渲染,提升了代码逻辑性,并减少了 debug 的麻烦度。
之后会对该类添加更多新功能,并完全使用类似 HTML 的 div 的全能模块,取代单独定义四种(Text、Rectangle、Image、Ecllipse)类型。
链接(注意,请使用 /src 中的文件,/DrawingObject 中的 .sln 项目文件由于项目保存地址的不同导致无法打开):Junhao139 的 GitHub 项目
[ 项目中会有更新日志哦 (虽然 GitHub 自带 Commit) ]
本人目前由于在国外的缘故,寒假的结束时间要早于中国国内的寒假开始日期。因此当您之后能够全身心投入到您的项目中时,使用的将会是一个更加全面、完善的功能插件。
@六月
编写日期【2020/12/16】
更改日期【暂无】