文档详情

html5游戏开发—Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10).pdf

发布:2024-07-27约7.3千字共9页下载文档
文本预览下载声明

Cocos2d-x游戏暂停、继续游戏、重新

开始界面的实现--之游戏开发《赵云要

格斗》(10)

Evankaka2015-01-2110:11:203020次阅读

本文要实现游戏中的暂停、重新开始。将当前界面截图,然后用这张图去构造一个层(以这

张图为背景),然后加个按钮,主界面点暂停时,pushScene(),然后转到游戏暂停界面,当

在游戏暂停界面点继续游戏popScne()。在Cocos2d-x中推进(pushScene())暂停场景,之前

运行的场景将会自动暂停,然后我们可以在暂停场景中操作,当我们不再需要暂停场景时,

可以popScene()将暂停场景弹出。重新开始游戏直接replaceScene()。

Cocos2d-x版本:2.2.5

工程环境:Windows7+VS2010

打开方式:将工程放在Cocos2d-x安装目录下的project文件夹下用VS打开

本文效果:

一、游戏暂停界面初步实现

思路:将当前界面截图,然后用这张图去构造一个层(以这张图为背景),然后加个按钮,主

界面点暂停时,pushScene(),然后转到游戏暂停界面,当在游戏暂停界面点继续游戏时po

pScne()。

首先看看自定义的游戏暂停的层:

头文件Gamepause.h

#ifndef__Gamepause__H__

#define__Gamepause__H__

#includecocos2d.h

USING_NS_CC;

classGamepause:publiccocos2d::CCLayer

{

public:

virtualboolinit();

staticcocos2d::CCScene*scene(CCRenderTexture*sqr);

CREATE_FUNC(Gamepause);

//继续游戏

voidmenuContinueCallback(CCObject*pSender);

private:

};

#endif//__Gamepause_H__

然后是实现文件

#includeGamepause.h

//传入一个CCrenderTexture

//相当于一个正在运行的游戏的截图作为这个暂停对话框的背景

//这样就看起来像是对话框在游戏界面之上,一般游戏当中都是这样子写的。

CCScene*Gamepause::scene(CCRenderTexture*sqr)

{

CCScene*scene=CCScene::create();

Gamepause*layer=Gamepause::create();

scene-addChild(layer,1);

//增加部分:使用Game界面中截图的sqr纹理图片创建Sprite

//并将Sprite添加到GamePause场景层中

//得到窗口的大小

CCSizevisibleSize=CCDirector::sharedDirector()-getVisibleSize

();

CCSprite*back_spr=CCSprite::createWithTexture(sqr-getSprite()

-getTexture());

back_spr-setPosition(ccp(visibleSize.width/2,visibleSize.height/

2));//放置位置,这个相对于中心位置。

back_spr-setFlipY(true);//翻转,因为UI坐标和OpenGL

坐标不同

back_spr-setColor(cocos2d::ccGRAY);//图片颜色变灰色

scene-addChild(back_spr);

returnscene;

}

boolGamepause::init()

{

if(!CCLayer::init())

{

returnfalse;

}

//得到窗口的大小

CCSizevisibleSize=CCDirector::sharedDirector()-getVisibleSize

();

//原点坐标

C

显示全部
相似文档