【cocos2dx-3.0beta-制作flappybird】布告栏中的玄机—游戏状态层的设计与实现

一、引言

游戏状态层在整个游戏的过程当中,扮演了一个非常重要的角色,它的主要职责是根据游戏所处的不同阶段,来显示相应的画面。


二、状态层的三种状态:

1、游戏准备状态,主要是显示游戏准备的画面


2、游戏进行状态


3、游戏结束状态



三、不同状态的具体显示:

与三种状态相对应的处理函数分别是
void onGameStart();
void onGamePlaying(int score);
void onGameEnd(int curScore, int bestScore);
1、OnGameStart()
在游戏开始的时候,显示游戏开始状态画面
void StatusLayer::onGameStart(){
this->showStartStatus();
}
2、onGamePlaying
游戏进行过程中,状态层主要负责显示实时得分
void StatusLayer::onGamePlaying(int score){
this->removeChild(scoreSprite);
this->scoreSprite = (Sprite* )Number::getInstance()->convert(NUMBER_FONT.c_str(), score);
scoreSprite->setPosition(Point(this->originPoint.x + this->visibleSize.width / 2,this->originPoint.y + this->visibleSize.height *5/6)); 
this->addChild(scoreSprite);
}
3、onGameEnd
在游戏结束的时候,需要显示游戏结束画面,在这个过程当中,包括一些动画的显示,菜单的显示等等。
void StatusLayer::onGameEnd(int curScore, int bestScore){
this->showOverStatus(curScore,bestScore);
}
具体showOverStatus的代码比较长,这里就不贴了,还请参考源码进行阅读

四、小结

这一节介绍了游戏状态层的设计,以及其针对游戏过程当中的三种不同状态进行的响应。有关详细代码,还请移步到github:https://github.com/OiteBoys/Earlybird
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值