cocos2dx休闲游戏--Fruit & Bird 开发学习(1)
2017-07-12 11:44
337 查看
游戏架构:
一、 场景管理类 GameSceneManager:
在对一个游戏进行场景切换时,可以定义一个单独的类(eg:GameSceneManager类),来管理其他场景的切换。
该类的主要作用是管理各个场景,同时需要用该类创建第一个场景(即第一次进入游戏的场景),并实现从当前场景跳转到其他场景的方法。
优点:游戏中众多的场景集中到一个类中不但程序结构清晰而且维护简单。
在该游戏中,场景管理类,主要实现9个场景的切换:主布景类MainLayer,帮助布景类,设置布景类,排行榜布景类(进击的小鸟和水果大逃亡),关于布景类,选择游戏布景类,“进击的小鸟“布景类,“水果大逃亡”布景类
GameSceneManager.h文件
说明:场景管理类头文件,数据成员主要是指向其他场景的指针;成员函数则是跳转到其他场景的方法。特别说明函数createMainScene是创建游戏中的第一个场景方法。
成员函数:createMainScene的实现;
跳转到其他场景方法的实现(此处列举2个场景跳转的方法)
切换到“进击的小鸟”排行榜场景的方法
void GameSceneManager::goToRankBirdScene()
{
Director::getInstance()->setDepthTest(true);
rankScene = Scene::create();
RankBirdLayer* layer = RankBirdLayer::create();
layer->sceneManager = this;
rankScene->addChild(layer);
auto ss = TransitionPageTurn::create(1.0f, rankScene, false);
Director::getInstance()->replaceScene(ss);
}
一、 场景管理类 GameSceneManager:
在对一个游戏进行场景切换时,可以定义一个单独的类(eg:GameSceneManager类),来管理其他场景的切换。
该类的主要作用是管理各个场景,同时需要用该类创建第一个场景(即第一次进入游戏的场景),并实现从当前场景跳转到其他场景的方法。
优点:游戏中众多的场景集中到一个类中不但程序结构清晰而且维护简单。
在该游戏中,场景管理类,主要实现9个场景的切换:主布景类MainLayer,帮助布景类,设置布景类,排行榜布景类(进击的小鸟和水果大逃亡),关于布景类,选择游戏布景类,“进击的小鸟“布景类,“水果大逃亡”布景类
GameSceneManager.h文件
#ifndef __GAME_SCENE_MANAGER_H__ #define __GAME_SCENE_MANAGER_H__ #include "cocos2d.h" USING_NS_CC; class GameSceneManager//场景管理类,数据成员主要是一些指向场景的指针;成员函数则是跳转到相应场景的方法 { public: Scene* mainScene; Scene* gameScene; Scene* birdScene; Scene* fruitScene; Scene* musicScene; Scene* rankScene; Scene* aboutScene; Scene* helpScene; public: void createMainScene(); void goToFlappyScene(int);//切换到“进击的小鸟”游戏界面的方法 void goToSquishyScene(int);//切换到“水果大逃亡”游戏界面的方法 void goToGameScene(); void goToMainScene(); void goToSetScene(); void goToRankBirdScene(); void goToAboutScene(); void goToHelpScene(); }; #endif
说明:场景管理类头文件,数据成员主要是指向其他场景的指针;成员函数则是跳转到其他场景的方法。特别说明函数createMainScene是创建游戏中的第一个场景方法。
成员函数:createMainScene的实现;
void GameSceneManager::createMainScene() { mainScene = Scene::create();//创建一个场景节点 MainLayer* layer = MainLayer::create();//创建主菜单布景层 layer->sceneManager = this;//将MainLayer中的公有数据成员指向场景管理器类(this),那么在MainLayer中,就可以使用sceneManager这个指针切换到其他场景 mainScene->addChild(layer);//将主菜单布景层添加到场景中 }说明:该方法用来创建游戏的第一个场景,函数中MainLayer其实就是主菜单布景类(下一小节单独列出该类的实现)
跳转到其他场景方法的实现(此处列举2个场景跳转的方法)
void GameSceneManager::goToMainScene()//切换到主界面的方法 { Director::getInstance()->setDepthTest(true);//开启深度检测, mainScene = Scene::create(); MainLayer* layer = MainLayer::create(); layer->sceneManager = this; mainScene->addChild(layer); auto ss = TransitionFade::create(1.0f, mainScene); Director::getInstance()->replaceScene(ss); }
切换到“进击的小鸟”排行榜场景的方法
void GameSceneManager::goToRankBirdScene()
{
Director::getInstance()->setDepthTest(true);
rankScene = Scene::create();
RankBirdLayer* layer = RankBirdLayer::create();
layer->sceneManager = this;
rankScene->addChild(layer);
auto ss = TransitionPageTurn::create(1.0f, rankScene, false);
Director::getInstance()->replaceScene(ss);
}
相关文章推荐
- cocos2dx休闲游戏--Fruit & Bird 开发学习(3)———RankBirdLayer
- cocos2dx休闲游戏--Fruit & Bird 开发学习(2)--主菜单场景MainLayer
- 【iOS-cocos2d-X 游戏开发之十五】Cocos2dx中响应Android的Back(返回)与Menu(小房子)事件&&Cocos2dx自动释放粒子内存函数!
- 【iOS-cocos2d-X 游戏开发之十四】Xcode中c++&Object-C混编,详细介绍如何在cocos2dx中访问object函数以及Apple Api
- cocos2dx游戏开发学习笔记2-从helloworld开始
- cocos2dx游戏开发——别踩白块学习笔记(一)——Block类
- J2ME游戏开发学习之高效&漂亮显示积分
- 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!
- Cocos2dx游戏开发笔记21:动手学习《Flappy Bird》之继续优化(付源码)
- cocos2dx游戏开发学习笔记3-lua面向对象分析
- 《Cocos2D-iPhone 游戏开发之路》第4节 高仿<Flappy Bird>教程(2)
- Cocos2dx3.2学习准备(二):游戏开发中的一些基本概念
- 【cocos2dx游戏开发技术精解-学习笔记(1)】游戏背景
- 【Visual C++】游戏开发五十三 骨骼动画学习资料推荐&打包下载
- 【iOS-cocos2d-X 游戏开发之十一】New CCSprite()带来的错误&使用CCUserDefault及pvr.ccz在Cocos2dx中要注意!
- 【Visual C++】游戏开发五十三 骨骼动画学习资料推荐&打包下载
- cocos2dx游戏开发学习第一篇
- Cocos2dx游戏开发笔记21:动手学习《Flappy Bird》
- cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架
- cocos2dx游戏开发——微信打飞机学习笔记(一)——开发准备