[cocos2dx]抽象元素——CCScene场景类
2015-07-18 20:35
369 查看
在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的图层,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理这多个CCLayer,进行场景展现,相关业务逻辑的处理等;
一个场景就是一个界面,定义了所显示的所有角色图层信息。
Scene(场景)是一个抽象的概念,仅被用作Node(节点)的一个子类。Scene(场景)和Node(节点)几乎相同,不同的是Scene的默认锚点在屏幕的中心。现在 scene 没有其它的逻辑,不需要我们做太多的操作及处理,更多的操作处理基本都是在布景层上完成。CCScene 最重要的功能是提供了一组可以在继承类中覆盖的方法:
onEnter 场景开始运行时自动调用此方法
onExit 场景退出后自动调用此方法
onEnterTransitionFinish 切入当前场景的过渡效果完成后自动调用此方法
onExitTransitionStart 退出当前场景的过渡效果开始运行时自动调用此方法
onCleanup 场景清理资源时自动调用此方法
一旦在继承类中覆盖了这些方法,那么在相应事件发生时会自动调用上述方法。
从 SceneA 切换到 SceneB(不使用过渡效果):
SceneB:onEnter()
SceneA:onExit()
SceneA:onCleanup()
从 SceneA 切换到 SceneB(使用过渡效果):
SceneA:onExitTransitionStart()
SceneB:onEnter()
SceneB:onEnterTransitionFinish()
SceneA:onExit()
SceneA:onCleanup()
一个场景就是一个界面,定义了所显示的所有角色图层信息。
Scene(场景)是一个抽象的概念,仅被用作Node(节点)的一个子类。Scene(场景)和Node(节点)几乎相同,不同的是Scene的默认锚点在屏幕的中心。现在 scene 没有其它的逻辑,不需要我们做太多的操作及处理,更多的操作处理基本都是在布景层上完成。CCScene 最重要的功能是提供了一组可以在继承类中覆盖的方法:
onEnter 场景开始运行时自动调用此方法
onExit 场景退出后自动调用此方法
onEnterTransitionFinish 切入当前场景的过渡效果完成后自动调用此方法
onExitTransitionStart 退出当前场景的过渡效果开始运行时自动调用此方法
onCleanup 场景清理资源时自动调用此方法
一旦在继承类中覆盖了这些方法,那么在相应事件发生时会自动调用上述方法。
场景切换时的事件调用顺序
从一个场景切换到另一个场景时,会自动调用两个场景对象的 onEnter()、onExit() 等方法。这些方法的调用顺序如下:从 SceneA 切换到 SceneB(不使用过渡效果):
SceneB:onEnter()
SceneA:onExit()
SceneA:onCleanup()
从 SceneA 切换到 SceneB(使用过渡效果):
SceneA:onExitTransitionStart()
SceneB:onEnter()
SceneB:onEnterTransitionFinish()
SceneA:onExit()
SceneA:onCleanup()
相关文章推荐
- cocos2dx 安卓下文件写入
- [cocos2dx]重要父类——CCNode节点类
- 【Cocos2d-x】CCArray
- Cocos2d-x中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
- cocos2dx 使用spine制作骨骼动画
- (4)cocos2dx读取csv数据文件
- cocos2dx的图片加载
- cocos 关于文件名的各种坑 各种斜杠坑
- Cocos-js 之 使用Chipmunk实现碰撞 和 碰撞的监听
- COCOS2D 释放资源的最佳时机
- cocos2d-x添加虚拟键盘获得用户输入CCTextField实例
- 【Cocos2d-x】 Cocos2d-x 3.X 异步加载plist图片资源
- 基于cocos2dx的飞机大战学习[五]-添加三种敌机
- Cocos-js 之 使用Chipmunk实现碰撞 和 碰撞的监听
- Cocos2d-x3.4 EditBox的问题
- cocos2d 3.X Shader 变暗和变灰
- 【Cocos2d-x】CCNode
- cocos2dx翻牌效果示例
- Cocos2d Android 环境搭建
- cocos2d-x物业现场