【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color(RGBA),可适用于普通题目和引擎详解

【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color,可适用于普通题目和引擎详解


 8b354a7916f240d0bc7839822301ba90.gif#pic_center


往后看免费提供安装包

✨前言

哈喽大家好,我是iecne,本期为大家带来的是CPP/C++【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color。包教包会,快来看看吧!

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

任务描述

如何根据据Easy2D引擎中Point+Size+String+Color四个类型来展开讲解

本实践旨在通过多个代码的案列,让大家理解和掌握如何使用Easy2D引擎来将这四个基础类型详细的解释并且会运用

b9bb4b98e863444fba8b595496d27596.png


目录

【游戏引擎Easy2D】一篇打通引擎基础类型,Point+Size+String+Color,可适用于普通题目和引擎详解

往后看免费提供安装包

✨前言

任务描述

 Easy2D导读

安装 Easy2D

一.Point

1.二维坐标系

2.Point的运算

3.Point函数计算两点间距离

4.Point适用题目

1)普通做法

2)Point做法

3)Point做法化简

4)两者对比(化简,不化简)

二.Size

1.二维坐标系

2.Size的运算

3.Size适用题目

 1)普通做法

 2) Size做法

 3)Size做法化简

 4)两者对比(化简,不化简)

三.String

1.问题一

2.问题二

四.Color 

1.RGB

2.RGBA

3.十六进制

4.更多RGB

五.关于命名

总结

 


 Easy2D导读

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

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

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


安装 Easy2D

使用简易安装器

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

点击此链接进行下载(纯免费) 

下载点击这里,记得四连哦

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

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

安装环境
操作系统:Windows 7 及以上操作系统。
编译环境:Visual Studio 2013 (x86 & x64) 及以上版本。


一.Point

关注点赞收藏评论支持,现在开始我们的旅途

1.二维坐标系

Point 类表示一个二维坐标系中的点,具有 x  y 两个属性。

// 创建一个坐标为 (10, 20) 的点
Point p = Point(10, 20);

2.Point的运算

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);

3.Point函数计算两点间距离

Point 提供了计算两点间距离的函数

Point p1 = Point(10, 20);
Point p2 = Point(0, -5);
// 计算两点间距离
float distance = Point::distance(p1, p2);

4.Point适用题目

如,我们输入abcd,求a+b,c+d

1)普通做法

#include <iostream>

using namespace std

int main()
{
	int a, b, c, d;
	std::cin >> a >> b >> c >> d;
	std::cout << a+b << std::endl << c+d;
}

2)Point做法

#include <iostream>
#include <easy2d/easy2d.h>

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;
}

3)Point做法化简

#include <iostream>
#include <easy2d/easy2d.h>

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;
}

4)两者对比(化简,不化简)


#include <iostream>
#include <easy2d/easy2d.h>

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 <iostream>
#include <easy2d/easy2d.h>

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

点赞关注评论支持,下次找到不迷路

1.二维坐标系

Size 类表示一个二维坐标系中的物体大小,具有 width  height 两个属性。

// 创建一个宽度为 10,高度为 20 的大小
Size size = Size(10, 20);

2.Size的运算

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);

3.Size适用题目

如,我们输入abcd,求a+b,c+d

 1)普通做法

#include <iostream>

using namespace std

int main()
{
	int a, b, c, d;
	std::cin >> a >> b >> c >> d;
	std::cout << a+b << std::endl << c+d;
}

2) Size做法

#include <iostream>
#include <easy2d/easy2d.h>

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;
}

3)Size做法化简

#include <iostream>
#include <easy2d/easy2d.h>

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;
}

4)两者对比(化简,不化简)

#include <iostream>
#include <easy2d/easy2d.h>

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 <iostream>
#include <easy2d/easy2d.h>

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

String 类是储存字符串内容的容器,是 std::wstring 类型的别名。

它曾经是 Easy2D 中实现的一种同时支持 char 和 wchar_t 的字符串类型,后来为了程序的兼容性,Easy2D 抛弃了这种方式,而选择 C++ 标准库提供的 std::wstring。

因为 String 只是简单的给 std::wstring 起了个别名,所以有关 String 的用法你都可以在各大学习网站上找到。

在本教程中,只简单解答一下新手使用 String 时的疑问:


1.问题一

Q: 为什么Easy2D中所有的字符串都以 L 开头?以 L 开头的字符串有什么不同?
A:
C++中以双引号括起来的字符串类型为 const char*,其中的字符都是 ASCII 码;以 L 开头的字符串类型为 const wchar_t*,其中的字符都是 Unicode 字符;在 Windows 编程中,推荐在代码中使用 Unicode 字符。


2.问题二

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 

点赞关注评论支持,下次找到不迷路

1.RGB

Color 类表示一个 红、绿、蓝 三原色及 alpha 通道组成的颜色模型(RGBA颜色模型)

可以指定 RGB 三原色的程度来构造一个颜色:

// 构造一个纯红色
// 因为它的 R 值为最大(1.0),GB值为最小(0.0)
Color red = Color(1.0, 0.0, 0.0);

2.RGBA

可以指定 alpha 通道的程度来表示颜色的透明度,0.0表示全透明,1.0表示不透明:

// 构造一个纯红色,且透明度为 0.7
Color red = Color(1.0, 0.0, 0.0, 0.7);

3.十六进制

可以使用十六进制的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    // 深绿色

// 还有更多,不再列出

4.更多RGB

说明一下,大家看十六进制就行了,R.G.B是图形库EasyX的

30500781929742209c417b872cdb3a48.png

eb14c66300d4484eafa393e4e5c3e9d2.png


五.关于命名

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

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

总结

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

帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!

原创不易,还希望各位大佬支持一下

点赞,你的认可是我创作的动力!

收藏,你的青睐是我努力的方向!

评论,你的意见是我进步的财富!

8727b463932d44b2acd7b0fb454a41c5.png


   感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主

文章存在借鉴,如有侵权请联系修改删除!dd8b4788b2554df4bec4b8202395cad2.gif

 

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注