【别踩白块】游戏实战开发之胜利&失败场景
大家好,我是Lampard------是一位从事cocos开发的游戏小白。
本人经验尚缺,如果各位大牛有更好的建议,欢迎在下方评论,谢谢!!!
今天要介绍的是游戏胜利&失败场景的实现:
(1)失败场景的实现
当玩家点击到白块的时候,我们的游戏会终止循环,并且跳转到失败界面。
失败界面内容很简单,就是一个失败场景的背景,一个失败的Logo精灵以及两个菜单项分别返回到游戏界面和菜单界面。
#ifndef __FaildLayer__H__
#define __FaildLayer__H__
#include "cocos2d.h"
#include "extensions/cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
class FaildLayer : public Layer {
public:
static Scene* createScene(); // 创建一个场景
virtual bool init(); // 填充这个场景
CREATE_FUNC(FaildLayer); // 静态创建并把层加载进自动回收池
private:
Size vsable = Size(320, 480);
};
#endif
失败场景展示图:
(2)胜利场景的实现
其实胜利场景和失败场景很相似,只不过是把背景以及Logo换掉。以及新增一个LabelTTF的标签,用于展示你通关这个游戏场景所耗费的时间。但是困难来了,由于胜利场景是在另外一个胜利cpp文件里,而游戏场景则是在Game场景里,想要访问到Game里面的参数,又不能直接extern,因为跳转胜利场景时游戏场景会被销毁。在思考过后决定新建一个全局变量的文件用于存放“游戏时间”这个全局变量。
全局变量的头函数
#ifndef __GlobalData__H__
#define __GlobalData__H__
#include<stdio.h>
extern double Time;
#endif
然后在GameLayer处引用就可以了,不过要注意的是,每次引用都要把初始值赋予0
当全局变量设好之后,我们就可以调用计时器来计时了
schedule(schedule_selector(GameLayer::addTime),0.1f); //每0.1秒调用一次
void GameLayer::addTime(float dt) {
Time=Time+0.1; // 每次加0.1秒
}
OK,之后剩下的就是简单的创建场景填充场景了,具体的代码可以下载我上一篇博客的源码参详~
最后展示一下胜利场景:
今天就到这里,谢谢大家~~
未完待续......