- Cocos2D-x权威指南
- 满硕泉
- 480字
- 2024-10-30 01:10:21
3.3.1 如何新建一个场景
下面通过HelloWorld项目中新建场景的过程来总结使用场景的过程。
1)定义一个场景类实例。
Cocos2D-x引擎中的HelloWorld范例中,HelloWorldScene.cpp中的scene函数即是新建场景的地方,如代码清单3-9所示。
代码清单3-9 HelloWorld新建场景类实例
CCScene* HelloWorld::scene() { //新建场景类实例 CCScene *scene=CCScene::create(); //CCScene *scene=CCScene::node(); //定义布景层 HelloWorld *layer=HelloWorld::create(); //将布景层加入场景 scene->addChild(layer); //返回场景类 return scene; }
通过create方法构造一个场景,当然,create函数是Cocos2D-x 2.0以后的版本才有的方式,2.0之前的版本采用的是后面被注释掉的方法,然后将定义的布景层作为子项加入场景中,要显示的成员都在布景层中。至于布景层的定义,将在后面做介绍。
2)获得并运行场景。
在游戏入口AppDelegate类中的applicationDidFinishLaunching函数中调用上一步定义的方法,并使用导演类的runWithScene方法运行场景,如代码清单3-10所示。
代码清单3-10 获得并运行场景
bool AppDelegate::applicationDidFinishLaunching(){ //初始化导演类 CCDirector *pDirector=CCDirector::sharedDirector(); //设置OpenGL视图 pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView()); //设置是否显示每帧时间 pDirector->setDisplayStats(true); //设置每帧时间 pDirector->setAnimationInterval(1.0/60); //创建场景 CCScene *pScene=HelloWorld::scene(); //运行场景 pDirector->runWithScene(pScene); return true; }
到这里已经可以新建一个场景并把它加入游戏中了。
这时也许有人会有疑问:一般来讲,游戏都会由多个场景组成,至少会有菜单场景和游戏场景,更复杂的游戏甚至会有更多场景,那么如何在场景间切换呢?下一节将通过引擎自带的tests例子来学习如何在场景间切换。