场景类
Scene是场景类,相当于一个巨大的容器,将包含在内的Layer和Sprite输出到屏幕上。cocos2d-x同时只能渲染一个Scene,因此Scene是渲染的根节点。在构建游戏时,一般都是在一个Scene中添加一个或多个Layer,然后在一个Layer中又添加多个Sprite等。这样就构建起一个渲染树,cocos2d-x通过遍历这棵树上的节点来将图像显示在屏幕上。
Director控制场景的方法
场景的一个重要的作用就是流程控制的作用,我们可以通过Director的一系列方法控制游戏中不同的场景的自由切换。
//启动游戏,并运行scene场景。本方法在主程序第一次启动主场景的时候调用。
//如果已有正在运行的场景则不能调用该方法;会调用pushScene-->startAnimation()。
Director::getInstance()->replaceScene(scene);
//将当前运行中的场景暂停并压入到代码执行场景栈中,再将传入的scene设置为当前运行场景,
//只有存在正在运行的场景时才调用该方法;
Director::getInstance()->pushScene(scene)->startAnimation();
Director::getInstance()->stopAnimation(); //游戏进入后台
Director::getInstance()->startAnimation(); //游戏从后台返回
Director::getInstance()->pause() //游戏暂停
Director::getInstance()->end(); //游戏结束
同时场景是层的容器,包含了所有需要显示的游戏元素。通常,当我们需要完成一个场景时候,会创建一个Scene的子类,并在子类中实现我们需要的功能。比如,我们可以在子类的初始化中载入游戏资源,为场景添加层,启动音乐播放等等。