一、什么是场景@H_404_1@
场景是包含精灵、标签、节点和其他游戏UI元素的对象容器。@H_404_1@
场景负责游戏逻辑的运行和游戏内容的逐帧渲染。@H_404_1@
每个游戏至少需要一个场景。游戏一般拥有多个场景并且可以在多个场景间自由切换,cocos2dx提供了多种场景切换效果。@H_404_1@
二、创建场景@H_404_1@
auto myScene = Scene::create();@H_404_1@
三、场景布局@H_404_1@
cocos2dx使用右手坐标系统,也就是说原点(0,0)位于左下角,UI元素的坐标是基于这个原点计算出来的相对坐标。@H_404_1@
四、多场景切换@H_404_1@
cocos2dx提供多种形式的场景切换。@H_404_1@
假设现在定义了一个场景:auto myScene = Scene::create();@H_404_1@
方式一:runWithScene@H_404_1@
runWithScene只能用于第一个场景的加载,也是启动整个游戏第一个场景的方式。@H_404_1@
Director::getInstance() -> runWithScene(myScene);@H_404_1@
方式二:replaceScene@H_404_1@
Director::getInstance() ->replaceScene(myScene);
@H_404_1@
方式三:pushScene@H_404_1@
暂停当前正在运行的场景,并将其放进暂停堆栈中。使用该方法的前提是有正在运行的场景。@H_404_1@
Director::getInstance() ->pushScene(myScene);
@H_404_1@
方式四:popScene@H_404_1@
移除正在运行的场景并用暂停堆栈中栈顶场景取代。该方法也要求当前有正在运行的场景。@H_404_1@
Director::getInstance() ->pushScene(myScene);
@H_404_1@