您的位置:首页 > 移动开发 > Cocos引擎

[cocos2dx]抽象元素——CCScene场景类

2015-07-18 20:35 369 查看
在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的图层,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理这多个CCLayer,进行场景展现,相关业务逻辑的处理等;
一个场景就是一个界面,定义了所显示的所有角色图层信息。
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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: