Node类是Cocos2dx的基类,像游戏中的 场景类、精灵类、文本类、菜单类、层类 等都是继承自Node。
Node类的定义文件目录:Cocos2dx根目录\cocos2d\cocos\2d\CCNode.cpp
Node类的文件声明目录:Cocos2dx根目录\cocos2d\cocos\2d\CCNode.h
Vector<Node *> _children; ///< 存放子元素的数组
int _tag; //元素标识,使用一个 int 来标识这个Node
std::string _name; //元素名称,使用一个 string 来标识这个Node
size_t _hashOfName; //_name的哈希值,用于提升getChildByName的查找速度
Size _contentSize; //元素的大小
Vec2 _position; //元素的位置
float _positionZ; // OpenGL渲染该元素的先后顺序
Vec2 _anchorPoint; //元素的锚点
float _rotationX; ///< 沿x轴旋转
float _rotationY; ///< 沿y轴旋转
// 旋转Z被分解为两部分来模拟动画的倾斜
float _rotationZ_X; ///< x部分
float _rotationZ_Y; ///< y部分
//缩放
float _scaleX; ///< scaling factor on x-axis
float _scaleY; ///< scaling factor on y-axis
float _scaleZ; ///< scaling factor on z-axis
bool _visible; //元素是否被显示
Cocos2dx 对c++的内存机制进行了封装,不使用 new 关键字来创建对象,而是使用 Node::create() 方法。
auto node = Node:create();//创建Node对象
就简单写几个,基本上所有属性都能够通过方法去设置,更多的就看文档或者直接看源码。
node->setTag();
node->setName();
node->setPosition();
该宏用来为一个类似CCLayer类的特定的类增加一个create函数。
那create函数里做了什么呢?
它执行了类的构造函数,执行了init()初始化函数。
最后又设置创建出的对象为自动释放内存。
这样其他人在使用这个类的时候,只要是用create()函数创建出来的对象就不用费心去管理释放内存了,它封装了c++的内存管理机制。
该宏所在的文件路径:
项目根目录\cocos2d\cocos\platform\CCPlatformMacros.h
该宏的代码:
/** @def CREATE_FUNC(__TYPE__)
* Define a create function for a specific type, such as Layer.
*
* @param __TYPE__ class type to add create(), such as Layer.
*/
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new(std::nothrow) __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = nullptr; \
return nullptr; \
} \
}
比如我们创建一个场景类时,我们在声明的时候就需要用到这个宏定义来为类添加一个create方法。
1、为什么要进行数据库收缩? SQL Server 数据库采取预先分配空间的方法来建立数...
前言 如果你是或者你想成为一名合格的前端开发工作者,你必须知道JavaScript代码...
在HTML编辑器发布过程中,会出现一些自动生成的HTML标签,或者在留言板程序应用...
一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函...
端点路由(Endpoint Routing)最早出现在ASP.NET Core2.2,在ASP.NET Core3.0提升...
提示:我提取了《xslt从入门到精通》中关于空格解释的核心部分,借以抛砖引玉,...
本文转载自微信公众号「DBA闲思杂想录」,作者潇湘隐者。转载本文请联系DBA闲思...
这是学习TensorFlow过程中记录的一点笔记在此分享一下。 文章目录 TensorFlow简...
当我们制作一个页面时,尤其是制作一个首页时,通常会设计一个可以链接到整个网...
需求:输入框中输入银行卡号(或其他)时,每4位自动加空格(如下图) 分析 方法...