Cocos2d-x CocosBase 场景管理解决方案(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:51 点击:

获取场景切换时传递的附加参数


getTouchPriority()

获取场景管理器在本场景onEnter时为本场景分配的触摸优先级


Viva为您提供的触摸优先级解决方案,在onLoadScene里初始化所有元素(CCMenu、CCLayer、CWidgetLayout等需要接收触摸事件的对象)

本场景在onEnter时总会得到一个最新的优先级值(最优先的)

所以在onEnter时,来刷新这些元素(CCMenu、CCLayer、CWidgetLayout)的触摸优先级,触摸优先级的值通过getTouchPriority来获得

这样就能保证,本场景在显示时(加入渲染树时),优先级被重置为最优先了。


addImage()

以同步的方式加载图像资源


addImageAsync()

以异步的方式加载图像资源



场景定义介绍


1. CREATE_SCENE_FUNC 这个宏写在每个场景定义的头文件里

2. REGISTER_SCENE_FUNC 用这个宏 通过场景类名来注册场景(一般写在AppDelegate.cpp里)

3. SeekScene 通过场景类名查找场景实例

4. SeekSceneExtra 通过场景类名查找场景实例 并传递参数


通过这样的代码来注册一个场景(一般写在AppDelegate.cpp里)

REGISTER_SCENE_FUNC(LoginScene);


通过这样的代码来运行一个场景

CCDirectorEx::sharedDirector()->runWithScene(SeekScene("LoginScene"));



消息广播机制:


所有CCObject对象均可以通过多继承于CCMessageProtocol接口类来实现接收消息的功能(CCSceneEx默认多继承于CCMessageProtocol)


registerMessageHandler(CCMessageProtocol* pProtocol)

注册一个消息接收器


unregisterMessageHandler(CCMessageProtocol* pProtocol)

取消注册一个消息接收器


通过以下代码来注册消息接收

CCDirectorEx::sharedDirector()->registerMessageHandler(this);

发送消息接口

// 发送消息到所有消息接收器
void PostMessage(unsigned int uMsg, CCObject* pMsgObj = NULL, void* wParam = NULL, void* lParam = NULL);
// 发送消息到指定消息接收器
void PostMessage(CCMessageProtocol* pProtocol, unsigned int uMsg, CCObject* pMsgObj = NULL, void* wParam = NULL, void* lParam = NULL);

通过以下代码来发送消息

CCDirectorEx::sharedDirector()->PostMessage(1, pBundle, NULL, NULL);

发送消息的时机可以是任何时间任何地方,发送的消息会在下一帧时进行分发。

另外消息结构中有一个参数pMsgObj,只要保证发送的参数是create出来的(调用过autorelease),即可再也不用理会这个对象的生命周期

其他两个对象指针wParam与lParam,需要自己处理释放等操作。



导演拓展类介绍

CCDirectorEx


end()

退出游戏


getRunningScene()

获取当前运行的基础场景


getRunningPopupScene()

获取当前运行的悬浮场景


removeCachedScenes(const char* pSceneName)

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1