cocos 第一天 基本类与概念
导演 Director
场景 Scene
布景层 Layer
精灵 Sprite
节点 Node
// 游戏初始化调用的函数
bool AppDelegate::applicationDidFinishLaunching()
// 游戏进入后台是调用的函数
void AppDelegate::applicationDidEnterBackground()
// 程序从后台返回到游戏时所调用的函数
void AppDelegate::applicationWillEnterForeground()
- #define CREATE_FUNC(__TYPE__) \
- static __TYPE__* create() \
- { \
- __TYPE__ *pRet = new __TYPE__(); \
- if (pRet && pRet->init()) \
- { \
- pRet->autorelease(); \
- return pRet; \
- } \
- else \
- { \
- delete pRet; \
- pRet = NULL; \
- return NULL; \
- } \
- }
注释中写的很明确,为一个类似CCLayer类的特定的类增加一个create函数.我们也可以看到在宏的下面定义了一个create()函数返回的类型就是宏带入的参数__TYPE__指针类型.那create函数里做了什么呢?它执行了类的构造函数,执行了init()初始化函数,最后又设置创建出的对象为自动释放内存.这样其他人在使用这个类的时候,只要是用create()函数创建出来的对象就不用费心去管理释放内存了.这个宏是不是很好用?
// 设置菜单
auto menuItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png");
auto menu =Menu::create(menuItem, NULL);
menu->setPosition(0, 0);
menuItem->setPosition(size.width-50,50);
menuItem->setCallback(CC_CALLBACK_1(myScne::menuClick, this));
this->addChild(menu);
return true;
}
void myScne:: menuClick(Ref *sender){
// 设置Label旋转
auto rotate = RotateBy::create(3, 90);
// auto repeate = RepeatForever::create(rotate);
label->runAction(rotate);
}