欢迎来到天天文库
浏览记录
ID:11301611
大小:43.00 KB
页数:9页
时间:2018-07-11
《html5游戏开发—cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)Evankaka2015-01-2110:11:203020次阅读本文要实现游戏中的暂停、重新开始。将当前界面截图,然后用这张图去构造一个层(以这张图为背景),然后加个按钮,主界面点暂停时,pushScene(),然后转到游戏暂停界面,当在游戏暂停界面点继续游戏popScne()。在Cocos2d-x中推进(pushScene())暂停场景,之前运行的场景将会自动暂停,然后我们可以在暂停场景中操作,当我们不再需要暂停场景时,可以p
2、opScene()将暂停场景弹出。重新开始游戏直接replaceScene()。Cocos2d-x版本:2.2.5工程环境:Windows7+VS2010打开方式:将工程放在Cocos2d-x安装目录下的project文件夹下用VS打开本文效果:一、游戏暂停界面初步实现思路:将当前界面截图,然后用这张图去构造一个层(以这张图为背景),然后加个按钮,主界面点暂停时,pushScene(),然后转到游戏暂停界面,当在游戏暂停界面点继续游戏时popScne()。首先看看自定义的游戏暂停的层:头文件Gamepause.h#ifn
3、def __Gamepause__H__ #define __Gamepause__H__ #include "cocos2d.h" USING_NS_CC; class Gamepause : public cocos2d::CCLayer { public: virtual bool init(); static cocos2d::CCScene* scene(CCRenderTexture* sqr); CREATE_F
4、UNC(Gamepause); //继续游戏 void menuContinueCallback(CCObject* pSender); private: }; #endif // __Gamepause_H__然后是实现文件#include "Gamepause.h" //传入一个CCrenderTexture //相当于一个正在运行的游戏的截图作为这个暂停对话框的背景 //这样就看起来像是对话框在游戏界面之上,一般游
5、戏当中都是这样子写的。 CCScene* Gamepause::scene(CCRenderTexture* sqr) { CCScene *scene = CCScene::create(); Gamepause *layer = Gamepause::create(); scene->addChild(layer,1); //增加部分:使用Game界面中截图的sqr纹理图片创建Sprite //并将Sprite添加到GamePause场景
6、层中 //得到窗口的大小 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCSprite *back_spr = CCSprite::createWithTexture(sqr->getSprite()->getTexture()); back_spr->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); //放
7、置位置,这个相对于中心位置。 back_spr->setFlipY(true); //翻转,因为UI坐标和OpenGL坐标不同 back_spr->setColor(cocos2d::ccGRAY); //图片颜色变灰色 scene->addChild(back_spr); return scene; } bool Gamepause::init() { if ( !CCLayer::init() ) {
8、 return false; } //得到窗口的大小 CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); //原点坐标 CCPoint origin =
此文档下载收益归作者所有