
- 🧛♂️iecne个人主页:点赞关注收藏评论支持哦~
- 💡每天关注iecne的作品,一起进步
- 👉本文收录专栏:【C++游戏引擎】
- 🐳希望大家多多支持🥰一起进步呀!
哈喽大家好,我是iecne,本期为大家带来的是CPP/C++【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color。包教包会,快来看看吧!
引擎支持 Visual Studio 2013 及以上版本,如果你使用的是较低版本的 VS,那么你需要考虑一下更新你的编译器了
如何根据据Easy2D引擎中Point+Size+String+Color四个类型来展开讲解
本实践旨在通过多个代码的案列,让大家理解和掌握如何使用Easy2D引擎来将这四个基础类型详细的解释并且会运用

目录
【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color,可适用于普通题目和引擎详解
对于编程而言,初学者最需要的不是技能,而是成就感。
如果你喜欢用 C/C++ 编写自己的小游戏,那么 Easy2D 将是个不错的选择,它大大简化了游戏制作过程,可以帮助你快速开发 Windows 上的 2D 小游戏。
它的特点和它的名字一样,Everything is Easy!
使用简易安装器
运行里面的 install.bat 文件进行安装。
点击此链接进行下载(纯免费)
安装程序会检测您已经安装的 Visual Studio 版本,并根据您的选择将对应库文件解压至 VS 库目录下。
Easy2D 不支持 VS2012 及以下的版本(包括 VC6.0),如果你使用的是低版本的 VS,那你需要尝试一下新版的 Visual Studio 了。
安装环境:
操作系统:Windows 7 及以上操作系统。
编译环境:Visual Studio 2013 (x86 & x64) 及以上版本。
关注点赞收藏评论支持,现在开始我们的旅途
Point 类表示一个二维坐标系中的点,具有 x 和 y 两个属性。
- // 创建一个坐标为 (10, 20) 的点
- Point p = Point(10, 20);
Point 之间可以做加减乘除运算:
- Point p1 = Point(10, 20);
- Point p2 = Point(0, -5);
- // 将两坐标相加
- Point p3 = p1 + p2;
- // 输出 p3 的坐标
- // 输出结果为 (10, 15)
- Logger::messageln(L"(%f, %f)", p3.x, p3.y);
Point 提供了计算两点间距离的函数
- Point p1 = Point(10, 20);
- Point p2 = Point(0, -5);
- // 计算两点间距离
- float distance = Point::distance(p1, p2);
如,我们输入abcd,求a+b,c+d
- #include
-
- using namespace std
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- std::cout << a+b << std::endl << c+d;
- }
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Point p1 = Point(a, c);
- Point p2 = Point(b, d);
- Point p3 = p1 + p2;
- std::cout << p3.x << std::endl << p3.y;
- }
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Point p1 = Point(a, c);
- Point p2 = Point(b, d);
- std::cout << (p1 + p2).x << std::endl << (p1 + p2).y;
- }
-
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Point p1 = Point(a, c);
- Point p2 = Point(b, d);
- Point p3 = p1 + p2;
- std::cout << p3.x << std::endl << p3.y;
- }
-
-
-
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Point p1 = Point(a, c);
- Point p2 = Point(b, d);
- std::cout << (p1 + p2).x << std::endl << (p1 + p2).y;
- }
点赞关注评论支持,下次找到不迷路
Size 类表示一个二维坐标系中的物体大小,具有 width 和 height 两个属性。
- // 创建一个宽度为 10,高度为 20 的大小
- Size size = Size(10, 20);
Size 之间可以做加减乘除运算:
- Size size1 = Size(10, 20);
- Size size2 = Size(0, -5);
- // 将两大小相加
- Size size3 = size1 + size2;
- // 输出 size3 的宽高
- // 输出结果为 (10, 15)
- Logger::messageln(L"(%f, %f)", size3.width, size3.height);
如,我们输入abcd,求a+b,c+d
- #include
-
- using namespace std
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- std::cout << a+b << std::endl << c+d;
- }
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Size S1 = Size(a, c);
- Size S2 = Size(b, d);
- Size S3 = S1 + S2;
- std::cout << S3.width << std::endl << S3.height;
- }
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Size S1 = Size(a, c);
- Size S2 = Size(b, d);
- std::cout << (S1 + S2).width << std::endl << (S1 + S2).height;
- }
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Size S1 = Size(a, c);
- Size S2 = Size(b, d);
- Size S3 = S1 + S2;
- std::cout << S3.width << std::endl << S3.height;
- }
-
-
- #include
- #include
-
- using namespace easy2d;
-
- int main()
- {
- int a, b, c, d;
- std::cin >> a >> b >> c >> d;
- Size S1 = Size(a, c);
- Size S2 = Size(b, d);
- std::cout << (S1 + S2).width << std::endl << (S1 + S2).height;
- }
String 类是储存字符串内容的容器,是 std::wstring 类型的别名。
它曾经是 Easy2D 中实现的一种同时支持 char 和 wchar_t 的字符串类型,后来为了程序的兼容性,Easy2D 抛弃了这种方式,而选择 C++ 标准库提供的 std::wstring。
因为 String 只是简单的给 std::wstring 起了个别名,所以有关 String 的用法你都可以在各大学习网站上找到。
在本教程中,只简单解答一下新手使用 String 时的疑问:
Q: 为什么Easy2D中所有的字符串都以 L 开头?以 L 开头的字符串有什么不同?
A:
C++中以双引号括起来的字符串类型为 const char*,其中的字符都是 ASCII 码;以 L 开头的字符串类型为 const wchar_t*,其中的字符都是 Unicode 字符;在 Windows 编程中,推荐在代码中使用 Unicode 字符。
Q: std::wstring 和 std::string 在使用时有什么不同?
A:
std::wstring 是 std::string 的 Unicode 版本,其中 w 的意思是 wide(宽),因为其储存的 wchar_t 是宽字符类型;使用时需要注意的地方有,将 std::cout、std::cin、std::to_string 等相关函数替换为 std::wcout、std::wcin、std::to_wstring 的宽字符版本。
点赞关注评论支持,下次找到不迷路
Color 类表示一个 红、绿、蓝 三原色及 alpha 通道组成的颜色模型(RGBA颜色模型)
可以指定 RGB 三原色的程度来构造一个颜色:
- // 构造一个纯红色
- // 因为它的 R 值为最大(1.0),GB值为最小(0.0)
- Color red = Color(1.0, 0.0, 0.0);
可以指定 alpha 通道的程度来表示颜色的透明度,0.0表示全透明,1.0表示不透明:
- // 构造一个纯红色,且透明度为 0.7
- Color red = Color(1.0, 0.0, 0.0, 0.7);
可以使用十六进制的RGB颜色值来表示一个颜色:
- // 构造一个纯红色
- // 因为它的 R 值为最大(FF),GB值为最小(00)
- Color red = Color(0xFF0000);
Color 类提供了常用颜色的枚举值,如下:
- Color::White // 白色
- Color::Black // 黑色
- Color::Blue // 蓝色
- Color::Brown // 棕色
- Color::Gray // 灰色
- Color::Green // 绿色
- Color::Red // 红色
- Color::Pink // 粉色
- Color::Orange // 橘黄色
- Color::OrangeRed // 橘红色
- Color::Purple // 紫色
- Color::Yellow // 黄色
-
- Color::Chocolate // 巧克力色
- Color::Gold // 金色
-
- Color::LightBlue // 淡蓝色
- Color::LightGray // 淡灰色
- Color::LightGreen // 淡绿色
-
- Color::DarkBlue // 深蓝色
- Color::DarkGray // 深灰色
- Color::DarkGreen // 深绿色
-
- // 还有更多,不再列出
说明一下,大家看十六进制就行了,R.G.B是图形库EasyX的


Easy2D 按照以下规律命名函数:
- 小驼峰式命名法则,第一个单词小写,后面的单词首字母大写,如
Window::setTitle- 所有函数均按照
动词+名语形式命名,如Logger::showConsole- 获取对象的属性值:
get+属性名,如Node::getWidth- 修改对象的属性值:
set+属性名,如Node::setPos- 获取对象的状态(bool值):
is+状态名,如Node::isVisiable
本节课主要是讲解了Easy2D引擎实现的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!
帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主
文章存在借鉴,如有侵权请联系修改删除!