cocos2dx休闲游戏--Fruit & Bird 开发学习(1)

前端之家收集整理的这篇文章主要介绍了cocos2dx休闲游戏--Fruit & Bird 开发学习(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

游戏架构:

一、 场景管理类 GameSceneManager:

在对一个游戏进行场景切换时,可以定义一个单独的类(eg:GameSceneManager类),来管理其他场景的切换。

该类的主要作用是管理各个场景,同时需要用该类创建第一个场景(即第一次进入游戏的场景),并实现从当前场景跳转到其他场景的方法

优点:游戏中众多的场景集中到一个类中不但程序结构清晰而且维护简单。

在该游戏中,场景管理类,主要实现9个场景的切换:主布景类MainLayer,帮助布景类,设置布景类,排行榜布景类(进击的小鸟和水果大逃亡),关于布景类,选择游戏布景类,“进击的小鸟“布景类,“水果大逃亡”布景类


GameSceneManager.h文件

  1. #ifndef __GAME_SCENE_MANAGER_H__
  2. #define __GAME_SCENE_MANAGER_H__
  3.  
  4. #include "cocos2d.h"
  5.  
  6. USING_NS_CC;
  7.  
  8. class GameSceneManager//场景管理类,数据成员主要是一些指向场景的指针;成员函数则是跳转到相应场景的方法
  9. {
  10. public:
  11. Scene* mainScene;
  12. Scene* gameScene;
  13. Scene* birdScene;
  14. Scene* fruitScene;
  15. Scene* musicScene;
  16. Scene* rankScene;
  17. Scene* aboutScene;
  18. Scene* helpScene;
  19.  
  20. public:
  21. void createMainScene();
  22. void goToFlappyScene(int);//切换到“进击的小鸟”游戏界面的方法
  23. void goToSquishyScene(int);//切换到“水果大逃亡”游戏界面的方法
  24. void goToGameScene();
  25. void goToMainScene();
  26. void goToSetScene();
  27. void goToRankBirdScene();
  28. void goToAboutScene();
  29. void goToHelpScene();
  30. };
  31. #endif

说明:场景管理类头文件,数据成员主要是指向其他场景的指针;成员函数则是跳转到其他场景的方法。特别说明函数createMainScene是创建游戏中的第一个场景方法


成员函数:createMainScene的实现;

  1. void GameSceneManager::createMainScene()
  2. {
  3. mainScene = Scene::create();//创建一个场景节点
  4. MainLayer* layer = MainLayer::create();//创建主菜单布景层
  5. layer->sceneManager = this;//将MainLayer中的公有数据成员指向场景管理器类(this),那么在MainLayer中,就可以使用sceneManager这个指针切换到其他场景
  6. mainScene->addChild(layer);//将主菜单布景层添加到场景中
  7. }
说明:该方法用来创建游戏的第一个场景,函数中MainLayer其实就是主菜单布景类(下一小节单独列出该类的实现)


跳转到其他场景方法的实现(此处列举2个场景跳转方法

  1. void GameSceneManager::goToMainScene()//切换到主界面的方法
  2. {
  3. Director::getInstance()->setDepthTest(true);//开启深度检测,mainScene = Scene::create();
  4. MainLayer* layer = MainLayer::create();
  5. layer->sceneManager = this;
  6. mainScene->addChild(layer);
  7.  
  8. auto ss = TransitionFade::create(1.0f,mainScene);
  9. Director::getInstance()->replaceScene(ss);
  10. }

切换到“进击的小鸟”排行榜场景的方法

  1. void GameSceneManager::goToRankBirdScene()
  2. {
  3. Director::getInstance()->setDepthTest(true);
  4. rankScene = Scene::create();
  5. RankBirdLayer* layer = RankBirdLayer::create();
  6. layer->sceneManager = this;
  7. rankScene->addChild(layer);
  8.  
  9. auto ss = TransitionPageTurn::create(1.0f,rankScene,false);
  10. Director::getInstance()->replaceScene(ss);
  11. }

猜你在找的Cocos2d-x相关文章