哈喽大家好,我是iecne,本期为大家带来的是CPP/C++游戏引擎Easy2D教程 —— 调整窗口 ,包教包会,快来看看吧!
引擎支持 Visual Studio 2013 及以上版本,如果你使用的是较低版本的 VS,那么你需要考虑一下更新你的编译器了
目录
前言
一.场景
二.节点
三.文本节点加入场景实例(代码实例)
四.内存管理与垃圾回收
五.综合实例 (代码实例)
六.总结
Scene(场景)
代表游戏中的一个界面,你的游戏可以有类似主菜单、游戏界面、结束界面等多个场景。
你可以直接使用 new
关键字创建场景:
// 创建一个空场景
auto scene = new Scene;
// 记得删除场景
delete scene;
SceneManager(场景管理器)
是控制场景间切换的类,使用 SceneManager::enter()
函数进入你创建的场景中,使用 SceneManager::back()
可以退出当前场景。
// 进入 scene 场景
SceneManager::enter(scene);
// 退出当前场景
SceneManager::back();
每一个可视化程序都要有一个场景 ,持续关注iecne,带你们学会告别黑框框
场景中所有的元素都被称为Node(节点)
,比如场景中的一个按钮,或者一张图片,它们都是节点的一种。
Easy2D 提供了许多游戏中常用的节点,比如Text(文本)
Sprite(精灵)
Button(按钮)
等等,你可以像创建场景一样,直接用 new
关键字创建它们
// 创建一个文本节点
auto text = new Text(L"Hello Easy2D");
格式如下:
auto 名字 = new (gcnew) Text(L"要输入的文本");
将创建好的节点加入到场景中,它将显示在画面上
// 将文本添加到场景中
scene->addChild(text);
上面的内容都属于 设计游戏内容,所以上面这个 Demo 的完整代码如下所示
#include
#include
using namespace easy2d;
using namespace std;
int main()
{
if (Game::init())
{
/* 设计游戏内容 */
// 创建一个空场景
auto scene = new Scene;
// 进入 scene 场景
SceneManager::enter(scene);
// 创建一个文本节点
auto text = new Text(L"Hello Easy2D");
// 将文本添加到场景中
scene->addChild(text);
Game::start();
// 释放内存
delete scene;
delete text;
}
Game::destroy();
return 0;
}
效果如下:
其实这一块都是一样的:
#include
#include
using namespace easy2d;
using namespace std;
int main()
{
if (Game::init())
{
/* 设计游戏内容 */
// 创建一个空场景
auto scene = new Scene;
// 进入 scene 场景
SceneManager::enter(scene);
// 创建一个文本节点
Game::start();
// 释放内存
delete scene;
delete text;
}
Game::destroy();
return 0;
}
只不过是在原基础上增加了这两行
auto text = new Text(L"Hello Easy2D");
// 将文本添加到场景中
scene->addChild(text);
当然text这个变量是可以改变的,但是后面的Text是不能改变的
Easy2D 支持垃圾内存的自动回收,要使用这个功能,你需要使用 gcnew
代替 new
来创建对象。
// 创建一个自动回收的场景
auto scene = gcnew Scene;
// 创建一个自动回收的文本
auto text = gcnew Text(L"Hello Easy2D");
使用 new 运算符创建的对象也可以手动调用 autorelease
函数,使其可以自动被回收。
// 使用 new 创建对象
auto scene = new Scene;
// 调用 autorelease 函数,使 GC 自动对其进行回收
scene->autorelease();
#include
#include
using namespace easy2d;
using namespace std;
int main()
{
if (Game::init())
{
/* 设计游戏内容 */
// 创建一个空场景
auto scene = new Scene;
// 进入 scene 场景
SceneManager::enter(scene);
// 创建一个文本节点
auto text = gcnew Text(L"点赞,关注,收藏,评论,支持一下iecne吧!!!");
// 将文本添加到场景中
scene->addChild(text);
Game::start();
// 释放内存
//delete scene;
//delete text;
}
Game::destroy();
return 0;
}
效果如下:
而这里任然一样:
#include
#include
using namespace easy2d;
using namespace std;
int main()
{
if (Game::init())
{
/* 设计游戏内容 */
// 创建一个空场景
auto scene = new Scene;
// 进入 scene 场景
SceneManager::enter(scene);
// 创建一个文本节点
auto text = gcnew Text(L"");
// 将文本添加到场景中
scene->addChild(text);
Game::start();
// 释放内存
//delete scene;
//delete text;
}
Game::destroy();
return 0;
}
只是在括号里加上了
点赞,关注,收藏,评论,支持一下iecne吧!!!
所以快点赞,关注,收藏,评论,支持一下iecne吧!!!
本节课主要是讲解了Easy2D引擎实现的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下
包教包会。
帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!
感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主
文章存在借鉴,如有侵权请联系修改删除!