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

时间:2019-05-14 17:22:26下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《html5游戏开发—Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《html5游戏开发—Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)》。

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

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

Evankaka2015-01-21 10:11:203020 次阅读

本文要实现游戏中的暂停、重新开始。将当前界面截图,然后用这张图去构造一个层(以这张图为背景),然后加个按钮,主界面点暂停时,pushScene(),然后转到游戏暂停界面,当在游戏暂停界面点继续游戏popScne()。在Cocos2d-x中推进(pushScene())暂停场景,之前运行的场景将会自动暂停,然后我们可以在暂停场景中操作,当我们不再需要暂停场景时,可以popScene()将暂停场景弹出。重新开始游戏直接replaceScene()。

Cocos2d-x版本:2.2.5

工程环境:Windows7+VS2010

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

本文效果:

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

思路:将当前界面截图,然后用这张图去构造一个层(以这张图为背景),然后加个按钮,主界面点暂停时,pushScene(),然后转到游戏暂停界面,当在游戏暂停界面点继续游戏时popScne()。

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

头文件 Gamepause.h

#ifndef __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_FUNC(Gamepause);//继续游戏

void menuContinueCallback(CCObject* pSender);

private: };

#endif // __Gamepause_H__

然后是实现文件 #include “Gamepause.h” //传入一个CCrenderTexture //相当于一个正在运行的游戏的截图作为这个暂停对话框的背景

//这样就看起来像是对话框在游戏界面之上,一般游戏当中都是这样子写的。CCScene* Gamepause::scene(CCRenderTexture* sqr){

CCScene *scene = CCScene::create();Gamepause *layer = Gamepause::create();scene->addChild(layer,1);//增加部分:使用Game界面中截图的sqr纹理图片创建Sprite //并将Sprite添加到GamePause场景层中 //得到窗口的大小

CCSize visibleSize = 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);return scene;}

bool Gamepause::init(){

if(!CCLayer::init()){ return false;} //得到窗口的大小

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();//原点坐标

CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

//继续游戏按钮

CCMenuItemImage *pContinueItem = CCMenuItemImage::create(“pause_continue.png”, “pause_continue.png”, this, menu_selector(Gamepause::menuContinueCallback));

pContinueItem->setPosition(ccp(visibleSize.width/2 ,visibleSize.height/2+30));

CCMenu* pMenu = CCMenu::create(pContinueItem,NULL);pMenu->setPosition(CCPointZero);this->addChild(pMenu, 2);

return true;} void Gamepause::menuContinueCallback(CCObject* pSender){ CCDirector::sharedDirector()->popScene();}

使用方法

在游戏主界面init函数加个:

CCMenuItemImage *pCloseItem = CCMenuItemImage::create(“CloseNormal.png”, “CloseSelected.png”, this, menu_selector(HelloWorld::menuPauseCallback));

pCloseItem->setPosition(ccp(visibleSize.widthpCloseItem->getContentSize().height/2));

// create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);pMenu->setPosition(CCPointZero);this->addChild(pMenu, 1);

然后是回调用的函数 暂停界面((记得加上面的头文件就是了))void HelloWorld::menuPauseCallback(CCObject* pSender){ //得到窗口的大小

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();CCRenderTexture *renderTexture = CCRenderTexture::create(visibleSize.width,visibleSize.height);

//遍历当前类的所有子节点信息,画入renderTexture中。//这里类似截图。

renderTexture->begin();this->getParent()->visit();renderTexture->end();

//将游戏界面暂停,压入场景堆栈。并切换到GamePause界面

CCDirector::sharedDirector()->pushScene(Gamepause::scene(renderTexture));}

这里来看看效果:

效果就是这样了,基本实现了游戏暂停的功能了。上面的代码可以直接拿去用,自己把图片改改就行了

二、游戏暂停界面美化实现

单单只有上面的肯定是不行的,太难看了,所以给图片的按钮加个背景图片,然后再加三个按钮。

这是按钮背景图片

这是三个按钮的图片

要用的直接拿去用,全是我原创的。

直接看下代码,就是在上面的基础上来增加函数的。

Gamepause.h

#ifndef __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_FUNC(Gamepause);//继续游戏

void menuContinueCallback(CCObject* pSender);//重新开始游戏

void menuRestart(CCObject* pSender);//回主界面

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

#endif // __Gamepause_H__ Gamepause.cpp

#include “Gamepause.h” #include “HelloWorldScene.h”//重新开始游戏的头文件 //传入一个CCrenderTexture //相当于一个正在运行的游戏的截图作为这个暂停对话框的背景

//这样就看起来像是对话框在游戏界面之上,一般游戏当中都是这样子写的。CCScene* Gamepause::scene(CCRenderTexture* sqr){

CCScene *scene = CCScene::create();Gamepause *layer = Gamepause::create();scene->addChild(layer,1);//把游戏层放上面,我们还要在这上面放按钮

//增加部分:使用Game界面中截图的sqr纹理图片创建Sprite //并将Sprite添加到GamePause场景层中 //得到窗口的大小

CCSize visibleSize = 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);

//添加游戏暂停背景小图,用来放按钮

CCSprite *back_small_spr = CCSprite::create(“back_pause.png”);back_small_spr->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));//放置位置,这个相对于中心位置。

scene->addChild(back_small_spr);

return scene;}

bool Gamepause::init(){

if(!CCLayer::init()){ return false;} //得到窗口的大小

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();//原点坐标

CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

//继续游戏按钮

CCMenuItemImage *pContinueItem = CCMenuItemImage::create(“pause_continue.png”, “pause_continue.png”, this, menu_selector(Gamepause::menuContinueCallback));

pContinueItem->setPosition(ccp(visibleSize.width/2 ,visibleSize.height/2+30));

//重新开始游戏按钮

CCMenuItemImage *pRestartItem = CCMenuItemImage::create(“pause_restart.png”, “pause_restart.png”, this, menu_selector(Gamepause::menuRestart));

pRestartItem->setPosition(ccp(visibleSize.width/2 ,visibleSize.height/2-20));

//回主界面

CCMenuItemImage *pLoginItem = CCMenuItemImage::create(“pause_login.png”, “pause_login.png”, this, menu_selector(Gamepause::menuLogin));

pLoginItem->setPosition(ccp(visibleSize.width/2 ,visibleSize.height/2-70));

// create menu, it's an autorelease object CCMenu* pMenu = CCMenu::create(pContinueItem,pRestartItem,pLoginItem,NULL);pMenu->setPosition(CCPointZero);this->addChild(pMenu, 2);

return true;} void Gamepause::menuContinueCallback(CCObject* pSender){ CCDirector::sharedDirector()->popScene();} //重新开始游戏

void Gamepause::menuRestart(CCObject* pSender){ CCDirector::sharedDirector()->replaceScene(HelloWorld::scene());} //回主界面

void Gamepause::menuLogin(CCObject* pSender){

第二篇:unity3d游戏开发之前景

Unity3D行业前景,游戏开发,虚拟仿真,医疗,军事,建筑,电影,动漫等多行业都在广泛运用3D技术。unity3d的春天正式到来!

Unity公司成立于2004年,其总部设在San Francisco,在欧亚地区都有分支办公机构,该公司专注于生产卡法工具。Unity 3D是一个视频游戏以及互动媒体的开发平台,支持为了全部主流桌面和游戏平台,包括iPhone,Android和基于浏览器的Flash。

Unity是一个私营公司,并且进行了两轮的资金融合。第一轮是2009年十月从Swquoia Captial募集了五百五十万美元,第二轮是从中国的West Summit Capital和新加坡的iGlobe Partners募集到了一千两百万美元,这两家亚洲风投希望Unity能够进一步专注于亚洲市场的扩张。Swquoia Captial也参与了近一轮的投资,Unity报告说其70&的盈利和增长是来自游戏相关的方面。

4.15.1 主要产品和技术

Unity的游戏和应用可以用C#语言,UnityScript(一种JavaScript的扩展)或者Boo(一种受Python启发的语言)来开发,其编译过程根据不同的目标平台而变化。在PC,Mac和Android平台上,游戏代码可以被编译成字节码,可以在Runtime用JIT编译器执行。在其他平台上,游戏代码需要预编译,在建立的时候转化成为目标机器的本地代码。

Unity开发平台包括可视化编程工具和基于MonoDevelop的IDE,还有3D补偿引擎,脚本语言环境,工作流系统和团队合作版本控制。Unity还运营着Asset store,这里面有超过两千种开发工具和游戏组件(艺术效果,编码,声音等),其中包括着一系列入门级基本功能产品免费为初学者提供。Unity还提供了Union,是一个app发布分割工具,可以让经纪人拿到20%的收益。

Unity的用户可以通过为全部的平台(除了web浏览器)编写本地代码插件来从Unity API之外获取操作系统的功能和第三方代码库支持。根据不同的目标平台,Unity的runtime尺寸(不包含用户组件和游戏代码)大约为6MB到20MB。

在移动平台方面,Unity最近展示了一系列的设备API,只有25%的Unity开发人员需要加速计和多点触控与设备API之间更好的集成性能,而其他厂商的均值有38%,显然Unity做得比别人好一些。为了从第三方获取Facebook连接以及iAd等支持,云API现在也唾手可得了。

Unity有免费版本,不过专业版增加了很多强大的功能,例如:自定义的Splash Screen,代码优化,视频回放,音频滤波,光影工具,低级补偿,性能优化和组件簇等。如果要发布到Android或iOS的移动平台上,每个平台需要支付$400,专业版license需要$1500。所有的license都不抽办税,并且允许无限制的应用发布。【狗刨学习网】

4.15.2 市场影响力

Unity公司表示拥有八十万注册开发者,以及每个月二十万活跃的开发者用户。对于iOS和Android平台的支持显著地增长,支撑着差不多一半左右的利润。其主要客户有Bigpoint,Cartoon Network,Coca-Cola,Disney,Electronic Arts,Lego,Microsoft,NASA,N,Ubisoft,美国军方还有华纳兄弟等。其页面的访问量也在累积增长,从2010年10月的叁仟伍佰万飞跃到了2011年的八千七百万。据报道,在iPhone App store里面有超过一千五百个基于Unity的游戏,其中包括最热销的Shadowgun,Battleheart,Gears,Samurai II还有Snuggle Truck。

4.15.3 市场定位

与Epic Games和Unreal Engine一样,Unity同样处在3D游戏市场,但是它也设计赌博行业。Unity支持很多桌面平台(Windows,Mac,Linux)以及很多类型的游戏机(PS3,Xbox360,Wii)还有很多种浏览器(他自己拥有的web player,Flash)以及Roku机顶盒,LG TV。对移动平台的支持比较适中(包括iOS,Android,BlackBerry Playbook)

Unity过去主要针对3D游戏开发的市场,目标是占领整个游戏开发团队。在本次调研中,72%的以游戏开发类别为首要工作的参与者选择Unity作为他们的首选游戏开发工具。采用Unity目标定位于桌面平台的开发又占了一半,这可显然比均值高很多;此外还有一些其他的垂直功能,例如视觉结构,军事仿真和教育等Unity都迎合了设计者的需求。

Unity的用户在移动开发经验上,中间层的人数比均值多一些,其中21%的Unity开发人员拥有3-4年经验(均值14%),而且他们不愿意透露在web开发方面的经验,只有31%的人拥有7年以上的web开发经验(显然低于均值49%)。调研结果还显示Unity是比较易学易用的,66%的Unity研发人员投票认为一个月就可以掌握Unity,而其他工具的均值是45%。

第三篇:html5游戏开发:cocos v2.2.5支持3D控件扩展

html5游戏开发:cocos v2.2.5支持3D控件扩展

html5游戏开发版本的推陈出新,产品不断优化,归根结底,是为了更好的服务于用户。

近日,触控科技发布了最新一代的cocos v2.2.5游戏开发一站式解决方案,其中html5游戏开发备受行业关注的3D功能也迎来了一个里程碑似的变化--支持了3D控件扩展功能!之前cocos v2.2.1版本推出的自定义控件扩展功能广受好评,同时开发者们也对cocos的3D扩展充满了期待。而现在3D扩展功能正式推出了!能够对3D控件进行自定义扩展,这无疑大幅提高了cocos 3D场景编辑的灵活性、全面性!

随着新版本cocos的发布,全新cocos v2.2.5不但优化了新建项目流程,还增加了一键发布到手机、资源面板文件支持复制粘贴等功能,使得cocos整体工具链的易用性得到了大幅度的提升。

html5游戏开发一键部署到手机,方便调试

Cocos v2.2.5可以将Cocos Studio编辑的场景UI直接发布到手机上,查看运行效果。设计人员可以直观的看到自己所设计的界面在手机上的运行状态,而无需顾虑UI界面在手机上的效果差距等问题;编程人员可以在手机上调试项目,方便更加直观的对项目进行调整;而测试人员同样也可以在手机上对项目进行直观的测试,效率有效提升。总体上看,一键发布到手机,让团队之间依赖性得到解耦,降低沟通成本,减少返工次数。

html5游戏开发支持3D控件扩展

支持3D控件扩展是本次更新中最重磅的消息。之前在cocos春季开发者大会中,公布了cocos支持自定义控件功能后,大会现场瞬间沸腾,各种惊叹与兴奋的声音随之而来。同时一个疑问也产生了,3D支持扩展么?现在,可以肯定的回复--3D支持扩展了!开发者只需经过几个简单的步骤即可轻松自定义一个简单的3D扩展控件,亦可通过编写C#代码来自定义一个高级的3D控件。

新建项目流程,创建项目更加方便快捷

除了以上闪亮的功能外,html5游戏开发cocos v2.2.5的开发团队,从开发者的角度出发,做了更多细节性的优化,比如:资源面板文件支持复制粘贴;文本控件增加描边、阴影属性、取色器面板支持颜色历史记录;结构树下图层的属性可批量操作……是不是很贴心,还有哦!cocos v2.2.5支持双击嵌套的节点,可以打开并编辑该文件;属性栏标示出所有可以作为动画帧的属性;支持快捷键(Shift + Q/W/T/B)控制调整对象的渲染层级……

此次html5游戏开发cocos v2.2.5的更新,在原来cocos v2.2.1的基础上,从细节出发,优化创新。在维持原有功能的情况下,做出更多的优化调整,让开发者可以随心所欲的调整UI布局,方便管理UI资源。

html5游戏开发Cocos v2.2.5更新说明:

【新增】一键部署并运行App在iOS、Android、win32、Mac以及浏览器平台上

【新增】JS项目可以打包成HTML5 App 【新增】支持3D控件扩展

【新增】资源面板csd文件支持拷贝操作,快捷键为Ctrl/Command+D 【新增】双击嵌套的csd文件, 直接进入编辑状态

【新增】文本控件增加描边、阴影属性设置(Cocos2d-x 3.6支持解析)【新增】动画缓动设置。(Cocos2d-x 3.6支持解析)【新增】精灵控件,粒子控件blending功能。(Cocos2d-x 3.6支持解析)

【新增】取色器面板支持颜色历史记录

【新增】多选结构树节点,可批量操作显示与锁定 【优化】完整项目与资源项目整合为cocos项目,简化创建项目流程

【优化】资源项目可以升级为完整项目 【优化】整合打包与发布项目

【优化】支持快捷键(Shift + Q/W/T/B)控制调整对象的渲染层级

【优化】创建序列帧动画,增加“是否追加第一帧为最后一帧”选项,可方便的创建循环的序列帧动画

【优化】去掉节点不可以重名的判断

【优化】九宫格参数可以更直观的通过拖动的方式进行设置 【优化】给控件设置资源,控件的尺寸将默认设置为资源的尺寸 【优化】3D网格参考线显示 【优化】整合发布与打包界面

【修复】导入1.6 UI项目只改变结构树显示,不改变控件可见性,导致模拟器里面仍然显示的问题

【修复】ScrollView Area大小受content size限制的问题

第四篇:unity3d游戏开发之培训心得体会

北京培训Unity已经有一个月了,自己从刚开始对班里人的不熟悉到熟悉,对以前不努力的自己也做了深刻的反省。

来了这里之后,就觉得大学自己根本就没有去认真的学习知识,来到这里之后,我觉得自己的每一天都是充实有趣的。每天学习久了,疲惫的时候,和同学们聊聊天,疲惫的我也会觉得精神不少。这里的学习气氛很好,在大学里,每个人几乎都是懒散的,有点懒惰的我也跟着偷起了懒。在这里,想玩一会的时候,看到周围的人都在努力的学习,向前跑,懒惰的自己又怎么好意思去玩呢,便收起自己想要偷懒的心,奋力的向他们追去。

我的学习不是最好的,但是我跟自己说,没关系的,只要你努力了,不要觉得自己笨,笨鸟还会先飞呢,那我就比别人提前飞,总会追上前面的人的步伐,更有可能超过他;只要你努力了,你就有收获。

下面来介绍一下我们的一天。

早上由于每天都睡得很晚所以老师给推迟的九点上课。我每天八点起来洗漱,八点半从宿舍出来去班里。(我们教室外的楼道)每天打开门进去,都会看到几个起的早的同学在教室里学习了,每次看到他们都会鼓励我前进,坐到座位上,我就开始复习前一天学习的知识,保证自己的学习质量。现在讲的都是基础,所以一定要好好学,就像楼房如果不打好地基,盖高了就会容易倒塌,传说中的豆腐渣工程,学习也是如此。

班里有很多学习很好的同学,被我们称之为“大神”。他们每次的成绩都让人羡慕,我总是暗下决心,我要努力的学习,即使我超越不了,也要和他们并排向前走。

到了中午,午饭时间,我们女生宿舍时有个小厨房的,有小家的感觉,我们每天中午都会回去自己做饭吃,这也也省了不少钱。毕竟北京的消费很高,老在外面吃饭,花销太大了。(宿舍小厨房)中午吃完饭,我一般都是坐一会就回到教室,去会顾上午学习的内容,记记笔记。但是每次到了教室就会看到比我还努力的同学。每天都是这样的状态,叫我怎么不努力?还有什么心思去做别的无关学习的事情呢?

(午休被偷拍的我)

大家每天的学习,不是纪律上的约束,不是老师的督促,每天都学习到晚上十点十一点,是大家自觉的去学习知识,不浪费一分一秒。为了补充自己,让自己学到知识。每当自己学会一个知识点的时候,大家的心里大概都是这样的吧:即使不去玩游戏,也会觉得很开心,再累也是值得了!

(同学们都在努力的学习着,用一句话来概括:根本就停不下来!)

到了晚上,大家完成老师留的任务,还会有每个小团队去讨论问题,老师也会给没听懂之前知识的同学进行辅导。同学们之间遇到问题也会共同探讨,在这种环境下,你不学习就会显得格格不入。

这就是我们的一天。

这篇文章来自狗刨学习网

第五篇:unity3d游戏开发之登录注册应用

在注册的时候,输入了数据库已存在的用户名,会显示用户已存在。

//验证用户是否存在

Users u = new Users().register(name);

if(name == u.Name)

{

name = “该用户已存在”;

a =GUI.Button(new Rect(600, 360, 40, 20), “注册”);

}

在登录的时候,当用户输入错误密码或用户名就会出现提示:

章来自狗刨学习网

代码部分:

如果用户名和数据库的不同

就提示:

print(“用户或密码错误”);

name = “";

password = ”";

flag = true;

这篇文章来自狗刨学习网

这篇文

下载html5游戏开发—Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)(5篇模版)word格式文档
下载html5游戏开发—Cocos2d-x游戏暂停、继续游戏、重新开始界面的实现--之游戏开发《赵云要格斗》(10)(5篇模版).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐