首页IT科技用c++做游戏源代码(猿创征文|【C++游戏引擎Easy2D】学C++还不会绘制一个简单的二维图形?一篇文章教会你)

用c++做游戏源代码(猿创征文|【C++游戏引擎Easy2D】学C++还不会绘制一个简单的二维图形?一篇文章教会你)

时间2025-06-20 19:57:13分类IT科技浏览4693
导读:🧛‍♂️iecne个人主页::iecne的学习日志...

🧛‍♂️iecne个人主页:iecne的学习日志 💡每天关注

iecne的作品             ,一起进步

💪学C++必看iecne

本文专栏【C++游戏引擎】

.

🐳希望大家多多支持🥰一起进步呀!

✨前言

互相学习                    ,或者加入粉丝群       ,可以添加vx YAN_Pisces_Boom

哈喽大家好             ,我是iecne                    ,本期为大家带来的是CPP/C++【游戏引擎Easy2D】绘制一个简单的二维图形       ,例如矩形             、圆形等             。包教包会      ,快来看看吧!

引擎支持 Visual Studio 2013 及以上版本                    ,如果你使用的是较低版本的 VS             ,那么你需要考虑一下更新你的编译器了

任务描述

如何根据据Button制作鼠标控制按钮类

本实践旨在通过多个代码的案列      ,让大家理解和掌握如何使用Easy2D引擎来绘制一个简单的二维图形                    ,例如矩形                    、圆形等                    。

Easy2D导读

对于编程而言             ,初学者最需要的不是技能,而是成就感       。

如果你喜欢用 C/C++ 编写自己的小游戏                    ,那么 Easy2D 将是个不错的选择                    ,它大大简化了游戏制作过程,可以帮助你快速开发 Windows 上的 2D 小游戏      。

它的特点和它的名字一样             ,Everything is Easy!

安装 Easy2D

使用简易安装器

运行里面的 install.bat 文件进行安装                    。

点击此链接进行下载(纯免费                    ,给官方搞成了VIP)

点击下载

安装程序会检测您已经安装的 Visual Studio 版本       ,并根据您的选择将对应库文件解压至 VS 库目录下              。

Easy2D 不支持 VS2012 及以下的版本(包括 VC6.0)             ,如果你使用的是低版本的 VS                    ,那你需要尝试一下新版的 Visual Studio 了      。

安装环境:

操作系统:Windows 7 及以上操作系统                   。

编译环境:Visual Studio 2013 (x86 & x64) 及以上版本              。

一.Easy2D图形

Shape 是节点的一种       ,它用于绘制一个简单的二维图形      ,例如矩形       、圆形等。

1.1 形状分类

Easy2D 仅提供了四种简单图形                    ,分别是

RectShape 矩形 RoundRectShape 圆角矩形 CircleShape 圆形 EllipseShape 椭圆形

1.2 形状的使用方法

创建四种形状的方式分别为:

// 创建一个宽高为 (10,20) 的矩形 auto rect = gcnew RectShape(Size(10, 20)); // 创建一个宽高为 (10,20)              ,圆角角度为 (40,20) 的圆角矩形 auto roundRect = gcnew RoundRectShape(Size(10, 20), 40, 20); // 创建一个半径为 10 的圆形 auto circle = gcnew CircleShape(10); // 创建一个半径为 (10,20) 的椭圆形 auto ellipse = gcnew EllipseShape(10, 20);

因为形状也是节点的一种      ,所以具备节点的所有性质                    ,例如移动

// 创建一个宽高为 (10,20) 的矩形 auto rect = gcnew RectShape(Size(10, 20)); // 移动矩形到 (100, 100) 坐标处 rect->setPos(100, 100);

在这里我们的移动是

rect->setPos(100, 100);

(100,100)则是坐标

若我们需要移动到100             ,200,则代码如下

rect->setPos(100, 200);

前提是                    ,你的窗口大小一定要大于100,200                    ,这样才能出现在窗口中

1.3 填充与轮廓

接下来我们详细讲解如何使用填充和轮廓

1.3.1 理论

所有的形状都可以设置样式,样式包括以下三种:

填充 轮廓 填充+轮廓 enum Style { Solid, /* 填充 */ Round, /* 轮廓 */ Fill, /* 轮廓 + 填充 */ };

Tip

轮廓: 解释为构成图形或物体的外缘的线条 填充: 解释为图形没有轮廓             ,中间实心 轮廓+填充:结合1             、2

1.3.2 实例使用

例如                    ,设置一个形状仅显示轮廓       ,不显示填充颜色:

// 设置形状样式为             ,轮廓 shape->setStyle(Shape::Style::Round);

所有的形状都可以设置填充色和轮廓颜色

创建一个宽高为 (10,20) 的矩形

auto rect = gcnew RectShape(Size(10, 20));

设置填充颜色为红色

rect->setFillColor(Color::Red);

设置轮廓颜色为白色

rect->setLineColor(Color::White);

设置轮廓线条宽度为 2

rect->setStrokeWidth(2.0);

合起来如下:

// 创建一个宽高为 (10,20) 的矩形 auto rect = gcnew RectShape(Size(10, 20)); // 设置填充颜色为红色 rect->setFillColor(Color::Red); // 设置轮廓颜色为白色 rect->setLineColor(Color::White); // 设置轮廓线条宽度为 2 rect->setStrokeWidth(2.0);

二.对比EasyX图形库

C++/C还有一个可视化的非引擎                    ,名为EasyX

他们都有Easy       ,让作者联想起他们的关联

由于作者两个都会      ,所以就拿过来对比一下

setbkcolor 设置当前设备绘图背景色                   。

setbkmode 设置当前设备图案填充和文字输出时的背景模式                    。

setfillcolor 设置当前设备填充颜色。

setfillstyle 设置当前设备填充样式             。

setlinecolor 设置当前设备画线颜色                    。

setlinestyle 设置当前设备画线样式       。

三.关于引擎的杂谈

两者区别不大                    ,但是EasyX的更加全面             ,毕竟EasyX 是针对 C/C++ 的图形库的             。所以EasyX的画图作用高于Easy2D

但是我们在编写游戏的时候      ,可以EasyX和Easy2D结合                    。博主以前写过一个程序                    ,由于Easy2D的MessegeBox没有EasyX的功能             ,我就直接加入EasyX的库,将EasyX和Easy2D结合                    ,这样就更好了

还有                    ,如果我们在写项目的时候,也可以加入这两个库             ,对于我们Cpp写程序的时候有益无害

但是写题目的时候千万不要加入这两个库                    ,因为我们很多的测试平台不会加上Easy2D和EasyX       ,这就和你写题目用Unity3D                    、虚幻等大引擎             ,编译错误一样的                    ,区别不大

对于初学者       ,没有专门学游戏开发的Cpp学者      ,还是建议学一下Easy2D                    ,这样可以拓展知识面             ,而Unity2D和虚幻等国际有名的大引擎      ,对于我们来说难度偏高                    ,学入门所需要的时间不是一时半会儿的             ,所以我们用Easy2D拓展知识面熟悉一下引擎的样子,其实Easy2D和QT的区别也不会特别大                    ,一通百通                    ,学会举一反三即可       。

关于命名

Easy2D 按照以下规律命名函数:

小驼峰式命名法则,第一个单词小写             ,后面的单词首字母大写                    ,如Window::setTitle 所有函数均按照动词+名语形式命名       ,如Logger::showConsole 获取对象的属性值:get+属性名             ,如Node::getWidth 修改对象的属性值:set+属性名                    ,如Node::setPos 获取对象的状态(bool值):is+状态名       ,如Node::isVisiable

总结

本节课主要是讲解了Easy2D引擎实现的教程      ,至此该课示例的思想博主已经真真切切彻彻底底分享完了                    ,相信大家对这个逻辑有了一定的理解             ,大家可以自己动手敲敲代码      ,感受一下                    ,包教包会      。若有任何侵权和不妥之处             ,请私信于我,定积极配合处理                    ,看到必回!!!

帅的人已然点赞收藏关注                    ,而丑的人还在犹豫,被犹豫了             ,快三连吧! 原创不易                    ,还希望各位大佬支持一下 点赞       ,你的认可是我创作的动力! 收藏             ,你的青睐是我努力的方向! 评论                    ,你的意见是我进步的财富!

感谢每一个观看本篇文章的朋友       ,更多精彩敬请期待~( ̄▽ ̄~)~:

iecne的博客

若有任何侵权和不妥之处      ,请私信于我                    ,定积极配合处理             ,看到必回!!!
声明:本站所有文章      ,如无特殊说明或标注                    ,均为本站原创发布                    。任何个人或组织             ,在未征得本站同意时,禁止复制       、盗用      、采集                    、发布本站内容到任何网站             、书籍等各类媒体平台              。如若本站内容侵犯了原著者的合法权益                    ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
js switchcase(JavaScript中的switch详解)