《Cocos2D-x权威指南》场景层(CCLayer)及其触摸消息响应

3.4.1 CCLayer类的函数

CCLayer类的主要函数如表3-9所示。

《Cocos2D-x权威指南》场景层(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;  
}

关于触屏、键盘、加速度传感器等输入,将在后面的章节介绍。

本节后面将介绍CCLayer类的子类

你可能感兴趣的:(《Cocos2D-x权威指南》场景层(CCLayer)及其触摸消息响应)