Cocos2d-x游戏引擎

1.场景

场景类在Cocos2d-x中用CCScene表示,单独的一个场景实际上只是一个空壳,里面什么东西都没有,我们需要向里面加入层,精灵,菜单等元素。我们都玩过一些手机或电脑游戏,在进入游戏之前,都会有一个开始界面,里面有开始游戏,读取存档,游戏设置等选项,每当你选择了一个选项,都会跳转到相应的界面,比如点击了开始游戏就会跳转到游戏的界面,那么开始的界面实际上就是一个场景,游戏界面是另外一个场景,而开始游戏以及游戏设置这些按钮不过是添加到场景中的一些元素。我们可以脑残的认为,游戏里面每一次的画面跳转就是一个场景,当然实际中也并不完全是这样。

 2.导演

一个游戏中会包含很多个场景,那么如何有效的管理这些场景确实是一个麻烦,Cocos2d-x中提供了一个CCDirector类来负责管理他们,CCDirector也被称为导演类,有加载场景,切换场景等功能。

2.1 加载场景

刚进入游戏的时候,必须有一个初始的场景,加载初始场景的方式代码清单如下所示:

CCDirector::sharedDirector()->runWithScene(pScene);

runWithScene只在加载第一个场景的时候使用

2.2 切换场景

如果我们想要做一个游戏,点击开始游戏之后切换到游戏的场景,就需要使用如下方法代码:

CCDirector::sharedDirector()->replaceScene(pScene);

2.3 场景切换的特效

    CCDirector::sharedDirector()->replaceScene(CCTransitionSlideInT::create(2.0f,theOtherScene::scene()));

CCTransitionSlideInT是Cocos2d-x提供的一个场景类,这个场景类又包含了子场景,通过CCTransitionSlideInT的create函数就可以创建具备该动画的场景。create函数共有两个参数 (float t ,CCScene* scene),其中2.0f是动画播放的时间,theOtherScene::scene()是将要显示的场景类。

Cocos2d-x的场景切换特效有很多种,这些特效是通过派生自CCScene的CCTransitionScene系列场景特效类实现的,大家可以自行尝试或查看官方Demo的SceneTest部分

 2.4场景的推进和弹出

我们之前所做的场景切换用到的是replaceScene函数,该函数在进行场景切换时,会使旧的场景释放掉,即释放该场景所占用的内存空间,当你再次访问到该场景时场景会重新加载。但是有些时候我们切换场景的时候并不希望它被释放掉,而是保留现场,以便于一会我们再切换回来,此时我们可以用到另外两种场景切换方式:推进和弹出。

推进场景的代码如下所示:
    CCDirector::sharedDirector->pushScene(theOtherScene::scene());

推荐一款游戏,还不错

http://www.wotui123.com/wb008.htm?from=168264&gid=3

时间: 2024-10-27 14:00:20

Cocos2d-x游戏引擎的相关文章

iOS cocos2d游戏引擎的了解之一

ios游戏引擎之Cocos2d(一) cocos2d是一个免费开源的ios游戏开发引擎,并且完全采用object-c进行编写,这对于已经用惯object-c进行ios应用开发的童鞋来说非常容易上手.这些也是我推荐使用cocos2d进行ios游戏开发的原因,当然从字面上已经可以开出来,这是一款专注于"2d"游戏的开发引擎,您也可以自己编写3d渲染代码或者使用第三方的解决方案,在cocos2d里加载显示3d模型.此外对于3d,也可以选用cocos3d来进行游戏开发.好了,废话不多说,还是先

游戏引擎

游戏引擎概述 游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件.这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始.大部分都支持多种操作平台,如Linux.Mac OS X.微软Windows.游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎).物理引擎.碰撞检测系统.音效.脚本引擎.电脑动画.人工智能.网络引擎以及场景管理. 详细介绍,请猛戳这里...... 常见的游戏

20 款免费的 JavaScript 游戏引擎

使用 HTML5,CSS3 和 Javascript 可以帮助面向对象开发者开发拥有各种特性的游戏,比如:3D 动画效果,Canvas,数学,颜色,声音,WebGL 等等.最明显的优势在于使用 HTML5 开发的游戏能在任何现代化流行的设备上运行. 某些游戏引擎仅仅是一个抽象的层次,就简单处理一些或者更多的繁杂游戏开发任务:其他只是注重 asset 加载,输入,物理效果,音频,sprite 地图和动画,而且相当多样化.还有一些引擎架构极其简单,只包括一个 2D 水平的编辑器和调试工具. 大部分的

Python游戏引擎开发(五):Sprite精灵类和鼠标事件

本次来实现Sprite类和鼠标事件. 说起这个Sprite啊,涉及过2D游戏研究领域的看官应该都听说过它.它中文原意是"精灵",不过在不同人的眼中,它所表示的意义不同.比如说在cocos2d中,它可以是一张图片.不过在flash中,Sprite是一个类似于"层"的家伙.当然你把它定义为层并不是很准确,实际上它是一个含显示列表的显示对象.什么意思呢?各位看官如果阅读了前面的章节,那对显示列表并不陌生.它说白了就是一个包含其他显示对象的容器. 那也许你会想,为什么要有这

【转载】U3D 游戏引擎之游戏架构脚本该如何来写

原文:http://tech.ddvip.com/2013-02/1359996528190113.html Unity3D 游戏引擎之游戏架构脚本该如何来写 2013-02-05 00:48:48     发表评论 这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引擎的朋友学会如何更好的写游戏脚本,当然本文这紧紧是我这么多年对游戏开发的认知,你也

【2D游戏引擎】WIP反思

WIP(Working In Progress)是我初学游戏引擎开发时候开发的一个2D游戏引擎,当时计划为它实现类似Unity一样的编辑器,具有和Unity相似的工作流,但是由于水平不够,走了很多弯路,闭门造车,做了很多错误的设计,导致很多地方反人类和难以维护,加之时间有限,所以已经停止了对它的继续开发.由于停止了开发,又不想把所有资料都全部搞丢,所以把在开发中学到的东西,和一些自己的思考都记录一下.以便后可以参考. 他最后可以实现这些功能,不过实现起来远比成熟的引擎蛋疼得多: 脚本游戏编程 基

国内开源html5游戏引擎全收录

本文引自<国内开源html5游戏引擎全收录> 游戏开发这潭水太深,英文水平太差,不敢看国外的, 而且这几年国内技术水平也挺高了不少,特别是JS方面.(我个人感觉) 最近看了几个国产的js游戏引擎,有点想开发个游戏玩玩, 毕竟搞编程这么多年,开发过各种类型的程序,就是没搞过游戏, 人生是不完整的... 就先收录一下我所知道的国产开源h5游戏引擎吧. cocos2d-js http://cn.cocos2d-x.org/ egret http://www.egret-labs.org/ Siriu

千百万Java开发者的福音:跨平台Cocos2d-Java游戏引擎诞生 .

跨平台Cocos2d-Java游戏引擎以及配套的CocosEditor2.0游戏开发工具终于诞生了.使用Java语言来开发Cocos2d跨平台游戏, 和-lua,-js 的风格相近API,毋庸置疑,这确实是Cocos2d新的里程碑.欢迎来的Cocos2d-Java的世界: 全世界有多少 Java 开发者? Oracle 说世界上有900万 Java 程序员 ,Wikipedia说是1000万,而 NumberOf.net 的哥们儿说的很精确:世界上有九百万七千三百四十六个 Java 程序员. 为

教你如何选择Android游戏引擎

我们进行Android游戏开发时选择游戏引擎是必须的,但是该如何选择呢?哪个Android游戏引擎更加适合自己呢?本文就提供了三个游戏引擎的对比说明,阐述了它们各自的特点,为大家选择引擎提供了参照. 1.Ronkon 如果不是想帮助作者解决一大堆兼容性问题的话还是不要使用这个引擎,我在上面浪费了1天半,就只是为了把实例程序跑起来.开始还以为是我水平菜,结果一堆人没跑起来,和我一样都是黑屏.虽然它文档做得好但我还是放弃了,本来Android平台兼容性就是老大难,在来个半吊子的引擎我可没本事搞定.

为什么没有好用的Android游戏引擎?

随着Android平台的不断发展,最近Android开发人员数量呈现出上升势头,就连以往较为冷门的游戏开发领域也涌现出不少生力军.然而,全新的问题正摆在了刚開始学习的人面前,非常多他们从未遇过的问题開始浮上台面. “找了好久也没看见合适的引擎,看来Android真的不适合游戏开发”.“我试过几个游戏引擎,感觉都不是非常好,效率低.BUG不可控”,“怎么中国就没人能做个向Cocos2d那样的引擎呢?看来还得等老外做好才干跟进啊.”这并非虚妄之谈,而是一些刚刚接触Android游戏开发人员的真实意见