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

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

概述游戏架构:      一、 场景管理类 GameSceneManager:              在对一个游戏进行场景切换时,可以定义一个单独的类(eg:GameSceneManager类),来管理其他场景的切换。              该类的主要作用是管理各个场景,同时需要用该类创建第一个场景(即第一次进入游戏的场景),并实现从当前场景跳转到其他场景的方法。              优

游戏架构:

一、 场景管理类 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 开发学习(1)全部内容,希望文章能够帮你解决cocos2dx休闲游戏--Fruit & Bird 开发学习(1)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1084301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存