cocos2dx中的场景和使用方法
1.一个游戏中有且只有一个导演,但是至少有一个场景
2.场景是游戏元素节点数的根节点,也可以理解为该场景下的渲染树的根节点
3.场景是一个容器,包含了该场景下的所有游戏元素,比如层,精灵
4.场景是导演用来控制游戏流程用的,例如如何开始场景,什么时候切换场景,什么条件下结束场景等等
5.与场景有关的API操作:
运行场景:runWithScene(Scene* scene);
启动游戏,并运行scene场景。本方法在主程序第一次启动主场景的时候调用。如果已有正在运行的场景则不能调用该方法;会调用pushScene
切换场景:分为两种,一种是压栈的,另一种是直接销毁的
pushScene(Scene* scene);
将当前运行中的场景暂停并压入到代码执行场景栈中,再将传入的scene设置为当前运行场景,只有存在正在运行的场景时才调用该方法(此方法,会造成游戏运行时内存消耗变大)
replaceScene(Scene* scene);
直接使用传入的scene替换当前场景来切换画面,当前场景被释放。这是切换场景时最常用的方法。(此方法,比较省内存,也最常用)
释放场景:popScene(Scene* scene);
与pushScene()对应,释放当前场景,再从代码执行场景中弹出栈顶的场景,并将其设置为当前运行场景。如果栈为空,直接结束游戏。
暂停场景:pause();暂停当前运行场景中的所有定时器和动作,场景仍然会显示在屏幕上
恢复场景:resume();恢复当前运行场景的所有计时器和动作,场景仍然会显示在屏幕上
结束场景:end();释放和终止执行场景,同时退出游戏