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

本文介绍了一个简单的游戏结束界面实现过程,使用Cocos2d-x框架创建了GameOver场景,包括显示游戏结束文本及提供重新开始游戏的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

游戏下载链接:http://download.youkuaiyun.com/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);

}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值