cocos2dx之初始化layer
来源:互联网 发布:evdo.evdo_a是什么网络 编辑:程序博客网 时间:2024/05/18 02:30
我们在进入layer的时候,首先如果使用默认的方法(
我初始化我的menu,回调一个:
才响应menu的点击消息。
看了源码就知道了,如果不调用的基类的onEnter/onExit那么我无法得到消息代理。也就不能接收到消息
LAYER_CREATE_FUNC
)初始化,那么它就会进入init,这个方法你可以初始化你的layer和一些sprites,如果你想自己重写layer的onEnter/onExit的话,那么务必请注意,你要在你的onEnter/onExit里面写上基类的Base::onEnter、Base::onExit,否则的话,程序会收不到消息的。
举例子说明:
void GameController::InitController() { CCMenuItemImage *menuitem = CCMenuItemImage::create( "NextLayeNormal.png", "NextLayeSelected.png", this, menu_selector(GameController::CreateNextScene));}
我初始化我的menu,回调一个:
GameController::CreateNextScene
才响应menu的点击消息。
如果我这个时候在GameController里面没有重写onEnter/onExit,那么我就它自动会接受到menu的点击消息。但是,一旦你重写了onEnter/onExit,就一定要写基类的onEnter/onExit的调用,否则,我在初始化menu的时候不会回调到GameController::CreateNextScene里面。也就是不会接受到消息。
我们看下layer的onEnter/onExit的源码:
void CCLayer::onEnter(){ CCDirector* pDirector = CCDirector::sharedDirector(); // register 'parent' nodes first // since events are propagated in reverse order if (m_bIsTouchEnabled) { this->registerWithTouchDispatcher(); } // then iterate over all the children CCNode::onEnter(); // add this layer to concern the Accelerometer Sensor if (m_bIsAccelerometerEnabled) { pDirector->getAccelerometer()->setDelegate(this); } // add this layer to concern the kaypad msg if (m_bIsKeypadEnabled) { pDirector->getKeypadDispatcher()->addDelegate(this); }}void CCLayer::onExit(){ CCDirector* pDirector = CCDirector::sharedDirector(); if( m_bIsTouchEnabled ) { pDirector->getTouchDispatcher()->removeDelegate(this); unregisterScriptTouchHandler(); } // remove this layer from the delegates who concern Accelerometer Sensor if (m_bIsAccelerometerEnabled) { pDirector->getAccelerometer()->setDelegate(NULL); } // remove this layer from the delegates who concern the kaypad msg if (m_bIsKeypadEnabled) { pDirector->getKeypadDispatcher()->removeDelegate(this); } CCNode::onExit();}
看了源码就知道了,如果不调用的基类的onEnter/onExit那么我无法得到消息代理。也就不能接收到消息
0 0
- cocos2dx之初始化layer
- cocos2dx 顶层layer
- cocos2dx layer 类型
- cocos2dx layer理解
- cocos2dx 3 Layer
- Cocos2dx 布景类-Layer
- cocos2dx入门一之引擎初始化
- cocos2dx入门一之引擎初始化
- layer插件的初始化
- cocos2dx源码分析:层Layer
- 14、Cocos2dx 3.0游戏开发找小三之Scene and Layer:一场游戏一场梦
- cocos2dx.3.x之重要类分析(4)——Layer
- Unity 手动初始化Tag /Layer
- cocos2dx 一些初始化函数
- cocos2dx 中Layer的锚点
- 设置图层Layer颜色 cocos2dx
- Cocos2dx 3.x创建Layer的步骤
- cocos2dx Layer与Scene生命周期详解
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- hadoop 2.2.0编译最后一步mvn package中各个问题解决办法
- ios字体设置
- C++ new[]和delete[]
- 黑马程序员---StringBuffer
- cocos2dx之初始化layer
- Phoenix Framwork怎么支持多批测试数据
- 里氏代换 -- 子类可以替换父类
- HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】(1)
- 【九度】题目1006:ZOJ问题
- hibernate jpa 4.0.3 final 的一些问题
- hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
- Linux的开发
- HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】(3)