您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x学习笔记三之飞机游戏详解之GameOver类的讲解

2013-09-16 14:22 399 查看
 

游戏下载链接:http://download.csdn.net/detail/a402813378/6275427

 

 

这个Demo的最后一篇,是制作GameOver窗口,这个窗口是游戏结束的窗口,讲完这篇这个Demo就已经结束了。

 

首先我们来看GameOver类的组成,和前面的一样由一个初始化函数和一个返回CCScene对象的函数组成,再加上回调函数添加一个文本来响应重玩功能,说完了,现在看类声明好了。

 

#ifndef  __GAME_OVER_SCENE_H__
#define  __GAME_OVER_SCENE_H__

#include "cocos2d.h"

using namespace cocos2d;

class GameOverScene : public CCLayer
{
public:
bool init();
static CCScene* scene();
CREATE_FUNC(GameOverScene);

private:
void replayMenuCallback(CCObject *pSender);
};

#endif


 

 

然后cpp文件这个类和Menu类基本上一样。添加一个文本GameOver(不响应消息),和一个replay文本(返回游戏),OK,看代码。

 

#include"GameOverScene.h"
#include"XSystem.h"
#include"GameManager.h"
#include"GlobalParam.h"

using namespace cocos2d;

CCScene* GameOverScene::scene()
{

CCScene* scene = NULL;

do
{
scene = CCScene::create();
CC_BREAK_IF(! scene);

GameOverScene* layer = GameOverScene::create();
CC_BREAK_IF(! layer);

scene->addChild(layer);
} while (0);

return scene;
}

bool GameOverScene::init()
{
bool bRet =false ;

do
{
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

CCLabelTTF *mGameOverLab = CCLabelTTF::create("GameOver", MENU_FONT_NAME,35);
mGameOverLab->setPosition(XSystem::xccp(visibleSize.width/2,visibleSize.height *2/3));
this->addChild(mGameOverLab);

CCLabelTTF* rePlayerLab = CCLabelTTF::create("Replay",  MENU_FONT_NAME, 35);
CCMenuItemLabel * replayItemLab = CCMenuItemLabel::create(
rePlayerLab,
this,
menu_selector(GameOverScene::replayMenuCallback)
);

CCMenu *menu =CCMenu::create(replayItemLab,NULL);
menu->setPosition(XSystem::xccp(visibleSize.width / 2, visibleSize.height / 2));
menu->alignItemsVertically();
this->addChild(menu);

bRet = true;

} while (0);
return bRet;
}

void GameOverScene::replayMenuCallback( CCObject* pSender )
{
GameManager::sharedGameManager()->runSceneWithId(GameManager::SCENE_ID_GAME);

}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐