• C++游戏引擎Easy2D教程(1) —— 第一个程序



    前言

    哈喽大家好,我是iecne,本期为大家带来的是CPP/C++游戏引擎Easy2D教程 —— 调整窗口 ,包教包会,快来看看吧!

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

    上一期的作品——Easy2D引擎制作的游戏片段上了热榜,于是有粉丝私信要求出一期Easy2D的教程

    022dd8958a944dffb915aa497786e5a2.jpeg


    目录

    前言

    一.下载并安装

    1.Easy2D 是什么 ?

    2.安装 Easy2D

    3.开始使用!

    二.第一个程序

    1.格式 

    头文件

     命名空间

     作者习惯 

    2.Game

    3.开始与结束

    三.调整窗口

    1.调整方法

    2.实战例子 

    四.总结


    一.下载并安装

    1.Easy2D 是什么 ?

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

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

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


    2.安装 Easy2D

    使用简易安装器

    在 下载 页面下载安装包,打开后跟随提示安装即可。

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

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

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


    Tips

    如果需要手动安装,可以下载 .7z 格式的压缩包,解压后将相关文件分别拷贝到 VS 对应的 include 和 lib 文件夹内,或者你的工程路径下即可。 

    使用源码编译

    1. 打开 Github 地址,点击页面右上角的 Clone or download,克隆本仓库或者下载 zip 源码
    2. 使用 Visual Studio 2013 或更高版本,打开目录下的 sln 文件
    3. 选择合适的编译平台(x86 或 x64)和编译配置(Debug 或 Release),编译 Easy2D 项目
    4. 创建你的新项目,并在解决方案管理器右键打开项目属性
    5. 把 C/C++ ==> 附加包含目录 设置为 Easy2D 项目的 /Easy2D/include/ 目录
    6. 把 链接器 ==> 附加库目录 设置为 Easy2D 项目的 /Easy2D/output/ 目录
    7. 开始编写 Easy2D 游戏吧!!!

    3.开始使用!

    使用 VS 新建一个空的 C++ 控制台程序,在源文件开头引入easy2d.h头文件,即可开始使用。

    复制下面的代码以创建一个Hello World程序。(可以不用看,新手100%看不懂)

    1. #include
    2. using namespace easy2d;
    3. int main()
    4. {
    5. if (Game::init()) // 初始化游戏
    6. {
    7. auto scene = gcnew Scene; // 创建一个场景
    8. SceneManager::enter(scene); // 进入该场景
    9. auto text = gcnew Text(L"Hello Easy2D!"); // 创建一个文本
    10. text->setAnchor(0.5, 0.5); // 设置文本中心点
    11. text->setPos(Window::getSize() / 2); // 文本位置居中
    12. scene->addChild(text); // 将这个文本添加到场景中
    13. Game::start(); // 开始游戏
    14. }
    15. Game::destroy();
    16. return 0;
    17. }

    二.第一个程序

    相信你已经配置好了 Easy2D 的环境,让我们新建一个空的控制台程序,从这里起步。

    1. #include
    2. using namespace easy2d;
    3. int main()
    4. {
    5. return 0;
    6. }

    入门使用技巧: 
    1. 使用解决方案资源管理器窗口添加/管理文件
    2. 使用团队资源管理器窗口连接到源代码管理
    3. 使用输出窗口查看生成输出和其他消息
    4. 使用错误列表窗口查看错误
    5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
    6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件 


    1.格式 

    头文件

    首先我们看下Easy2D的头文件

    #include 

    俩easy2(小写),中间/,最后.h

    很好记吧?

     命名空间

    #include 

     作者习惯 

    作者还是习惯把iostream和std加上

    如下:

    1. #include
    2. #include
    3. using namespace easy2d;
    4. using namespace std;
    5. int main()
    6. {
    7. return 0;
    8. }

    2.Game

    首先使用 Game 类来构建游戏的大体框架。Game 类用来控制游戏主流程,它可以完成开始游戏、暂停游戏、退出游戏等一系列操作。

    Game::init() 函数对游戏进行初始化,它必须在 main 函数的第一行调用,且只能调用一次。如果在初始化前进行了其他操作,有可能出现未知的错误。当初始化失败时,init() 会返回 false。

    1. int main()
    2. {
    3. // 初始化
    4. if (Game::init())
    5. {
    6. // 初始化成功
    7. }
    8. return 0;
    9. }

    3.开始与结束

    Game::start() 函数用来开始游戏,这个函数是阻塞的,执行该函数将进入到游戏主循环中,只有当窗口关闭或退出游戏时,这个函数才返回。

    Game::destroy() 函数用来销毁游戏过程产生的各类资源,它应该在程序的最后调用。

    有了这三个函数,我们就可以构建一个没有任何画面的窗口程序了。一个 Easy2D 程序应由 初始化设计游戏内容开始游戏销毁资源 四个部分组成,下面的代码运行后将显示一个无画面的黑窗口。

    1. #include
    2. #include
    3. using namespace easy2d;
    4. using namespace std;
    5. int main()
    6. {
    7. /* 初始化 */
    8. if (Game::init())
    9. {
    10. /* 设计游戏内容 */
    11. /* 开始游戏 */
    12. Game::start();
    13. }
    14. /* 销毁资源 */
    15. Game::destroy();
    16. return 0;
    17. }

    三.调整窗口

    1.调整方法

    Window 类用来控制窗口的属性,例如,你可以使用 Window::setTitle 函数修改窗口标题,并使用 Window::setSize 函数设置窗口的大小。

    1. // 修改窗口标题
    2. Window::setTitle(L"Demo");
    3. // 修改窗口大小
    4. Window::setSize(300, 300);

    Tips

    C++ 中的字符串有很多种类型,因为 Easy2D 使用 Unicode 字符集,所以必须在字符串前加一个前缀 ‘L’ 来标志这个字符串是 Unicode 编码的。

    大家不用将设置里的改成Unicode字符集,因为在前面加上L就行了

    Window::getWidth 和 Window::getHeight 函数可以获取窗口的宽度和高度,这两个函数可以帮助你对齐图片位置

    1. // 获取窗口的宽度和高度
    2. float width = Window::getWidth();
    3. float height = Window::getHeight();
    4. // 将窗口的宽高输出在控制台上
    5. printf(L"%.1f %.1f\n", width, height);

    2.实战例子 

    这样说我们不明白,直接上代码:

    1. #include
    2. #include
    3. using namespace std;
    4. using namespace easy2d;
    5. int main()
    6. {
    7. if (Game::init())
    8. {
    9. // 修改窗口标题
    10. Window::setTitle(L"iecne");
    11. // 修改窗口大小
    12. Window::setSize(300, 300);
    13. Game::start();
    14. }
    15. Game::destroy();
    16. return 0;
    17. }

    效果如下:

    9c0a739d343f41e481a8410a3955a7cf.png

     看小的框框


    四.总结

    本节课主要是讲解了Easy2D引擎实现的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下

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


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

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

  • 相关阅读:
    基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)
    Java——String类全面解析
    Java FileWriter类的简介说明
    数字图像处理实验目录
    “拿捏”红黑树
    如何使用Python连接数据库
    第十二届蓝桥杯《杨辉三角》-二分法
    复合类型(自定义类型)
    python:xml.etree.ElementTree 读 Freeplane.mm文件,生成测试案例.csv文件
    EasyRecovery14数据恢复软件官方功能简介
  • 原文地址:https://blog.csdn.net/CSDN_linyanchen/article/details/126284061