- Cocos2D-x权威指南
- 满硕泉
- 297字
- 2024-10-30 01:10:21
3.4.1 CCLayer类的函数
CCLayer类的主要函数如表3-9所示。
表3-9 CCLayer类的主要函数
来看Cocos2D-x的HelloWorld项目中的HelloWorldScene.cpp文件,scene函数定义CCLayer类并把它加入场景中,如代码清单3-16所示。
代码清单3-16 scene函数定义CCLayer类并把它加入场景中
CCScene* HelloWorld::scene() { //新建场景类实例 CCScene *scene=CCScene::create(); //定义布景层 HelloWorld *layer=HelloWorld::create(); //将布景层加入场景 scene->addChild(layer); //返回场景类 return scene; }
CCLayer类的init函数在创建布景层时被调用,如代码清单3-17所示。
代码清单3-17 CCLayer类的init函数
bool HelloWorld::init() { if (!CCLayer::init()) { return false; } CCMenuItemImage *pCloseItem=CCMenuItemImage::create( "CloseNormal.png", "CloseSelected.png", this, menu_selector(HelloWorld::menuCloseCallback)); pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize(). width - 20,20)); CCMenu* pMenu=CCMenu::create(pCloseItem,NULL); pMenu->setPosition(CCPointZero); this->addChild(pMenu,1); CCLabelTTF* pLabel=CCLabelTTF::create("Hello World","Arial",24); CCSize size=CCDirector::sharedDirector()->getWinSize(); pLabel->setPosition(ccp(size.width/2,size.height - 50)); this->addChild(pLabel,1); CCSprite* pSprite=CCSprite::create("HelloWorld.png"); pSprite->setPosition(ccp(size.width/2,size.height/2)); this->addChild(pSprite,0); return true; }
本书将在后面介绍具体显示在层次上的对象,目前只需要了解在init函数中定义要显示的对象并把它作为子类加入场景中。另外,关于触屏、键盘、加速度传感器等输入,将在后面的章节介绍。本节后面将介绍CCLayer类的子类。