场景(Science)是容纳其他可见于与不可见元素的容器,一个游戏至少需要一个场景。特定时间内只有一个场景处于活动状态的。游戏里关卡、界面的切换其实就是一个一个场景之间的切换,就像在电影中变换舞台或场地一样。
Cocos2d-Lua中使用cc.Scene表示场景类
(1)创建普通场景
display.newScene(name)
(2)创建带物理引擎的场景
display.newPhysicsScene(name)
前面提到,场景的管理是由导演完成的,与场景相关的导演方法有以下几个:
(1)shareDirector:runWithScene(newScene) 运行游戏的第一个场景。本方法在主程序第一次启动主场景的时候调用。
(2)shareDirector:pushScene(scene) 将当前运行中的场景暂停并压入到场景栈中,再将传入的Scene设置为当前运行的场景。
(3)shareDirector:replaceScene(newScene) 使用传入的scene替换当前场景,当前场景被释放。这是最常用的场景切换方法。
(4)shareDirector:popScene() 从场景栈弹出栈顶场景并释放,运行新的栈顶场景。如果栈顶为空,结束应用。通常和PushScene结对使用。