首先说一下CREATE_FUNC()这个宏定义,第一天使用COCOS2DX在helloworld的头文件中就有发现这个宏定义。
define CREATE_FUNC( TYPE) \
static TYPE__* create() \ //为__TYPE创建一个静态的create函数 用于
{ \
TYPE *pRet = new(std::nothrow) TYPE(); \ //创建一个 TYPE 类型的对象
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \ //有pRet这个对象并且有初始化函数,放入释放池
return pRet; \ //返回
} \
else \
{ \
delete pRet; \ //没用的时候删除该指针
pRet = nullptr; \
return nullptr; \
} \
}
总的来说就是为这个类之后创建对象并且做初始化操作而定义的一个宏定义。
然后就是创建lable,sprite,layer的一些操作,这些的操作主要分为下面几个步骤:
1.创建对象,通过类里面的create()方法生成子类对象,对象中可以承载一些数据,例如label承载的是文字,layer,sprite之类的可以承载一些图片资源
2.设置该对象在可视窗口上的位置,用setpostion()方法
3.位置设置完成之后就是将刚才的子类对象挂载到当前类的一个对象中,大多数使用this
当前场景布置完成之后就会用到切换场景的一个用法,cocos中提供了许多场景切换的特效,最简单突兀的切换就是用Direction::getIntance()->replaceScene(要切换到的场景的类名::获得场景的方法(也就是返回类型为Scene的一个函数))
回调函数,CC_CALLBACK_这个回调函数需要的形参个数,例如CC_CALLBACK_2(CTest::Test,this),那么这里的Test这个函数就有两个形式参数
Test(auto Value1,auto Value2);后面这个this是指该回调函数的类的一个对象