cocos2dx基础——场景类

来源:互联网 发布:时间流失数据法 编辑:程序博客网 时间:2024/06/15 18:27

场景类


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的子类,并在子类中实现我们需要的功能。比如,我们可以在子类的初始化中载入游戏资源,为场景添加层,启动音乐播放等等。