cocos2dx缓存捕鱼游戏 需要做缓存么

【Cocos2d-X游戏实战开发】打鱼达人之开发前准备工作(一) - 操作系统当前位置:& &&&【Cocos2d-X游戏实战开发】打鱼达人之开发前准备工【Cocos2d-X游戏实战开发】打鱼达人之开发前准备工作(一)&&网友分享于:&&浏览:104次【Cocos2d-X游戏实战开发】捕鱼达人之开发前准备工作(一)本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5)&&
博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果,
转载的时候请务必注明出处:http://blog.csdn.net/yangyu/article/details/
&&&&&&经过一个多月利用业余时间对于Cocos2D-X坚持不懈的学习和努力,对于大部分的基础知识基本上已经学的差不
多了,当然博主要学习的还有很多,依然会继续将《Cocos2D-X开发学习笔记》专题写下去,总结在学习的过程中遇
到的一些困难以及解决的方法,让那些初学者也可以少走一些弯路。
&&&但是,只是一味的学习基础知识是不够的,我们还需要实战项目的磨练,将零散的知识结合起来,才能开发出一
个完整的游戏,我们学习Cocos2D-X游戏引擎的目的不就是为了开发游戏么?所以博主决定一边学习新的知识,一边
以实战项目为主,对之前学习过的内容进行加强和巩固,以达到事半功倍的效果。
一、开发前的准备
&&&&&&对于有经验的开发者而言,在项目开始之前,都会对策划和需求进行分析建模,把描述性的文档转换成开发模
型,并对诸如命令规则等的标准进行统一。这在团队开发中尤为重要。虽然接下来的是独立开发,当仍有必要确立唯
一的标准。
&&&&& 这里我们将使用驼峰命名法以及MVC模式进行开发,并且在开发过程中将代码可读性作为首要的考虑因素,而且
博主也会为其注上详细的注释。
&&&&&&MVC模式是软件工程中的一种软件架构模式,包括模型(Model)、视图(View)、和控制器(Controller)3部
分。模型包括了数据和逻辑等,并不关心界面上的显示形式。视图则不包含程序上的逻辑,仅监控模型中的数据,并
根据数据的内容,将其在界面上显示出来。控制器则起到不同层面间的组织作用,用于控制应用程序的流程及消息传
递。根据程序的复杂程度,视图和模型的分离程度可能也有所不同。在此我们不进行更深层次的讨论,只在接下来的
内容中说明如何在Cocos2D-X的实战项目开发中运用这种模式。
二、视图(View)
&&&&&&游戏中的视图包括了CCScene下所有可见的节点和元素。在MyFishingJoy游戏项目中存在两个场景:开始场景和
游戏场景。
开始场景:
&&&& 开始场景由于预加载资源,这是游戏开发中常用的做法。在游戏开始之前,将外部资源加载进缓存中来保证游戏
过程中的流畅性。在Cocos2D-X中,共有4个缓存区,它们是CCTextureCache、CCSpriteFrameCache、
CCAnimationCache和CCShaderCache,分别对应图片纹理、精灵、动画和着色器。我们需要做的是调用这些缓存提
供的接口,异步载入资源,并以进度条的形式实时提示玩家当前的载入进度。载入完成之后方可进入下一场景。因
此,其界面并不复杂,除了简单的背景和标题之外,仅有一个需要更新的进度条。
游戏场景:
&&&&& 游戏场景是整个游戏的核心,包含了大部分的游戏逻辑和数据,也是游戏可玩性的体现。其界面比较复杂,大部
分可见元素都需要根据数据的变化实时更新。在开发的初期,我们应看重完成游戏场景,制作出游戏的雏形,而不是
把时间花费在菜单、载入界面等与游戏相关性较弱的地方。
三、模型(Model)
&&&&& 这部分主要包括了游戏逻辑数据。在之前基础知识的学习中,我们已经知道了可以通过CCUserDefault、XML、
JSON、SQLite或其他方法对游戏数据进行持久化的存储。这些方法的技术难度和功能都有其不同的倾向,例如,
SQLite比起XML,更倾向于大型数据的处理。我们需要根据游戏中的需求慎重选择对应的技术。
&&&&& MyFishingJoy项目中的数据主要分为两部分:静态数据和动态数据。
1、静态数据
&&&&&&静态数据是程序中的只读数据,例如图片名、NPC的名字、道具的售价甚至是图片的坐标等。这些数据不会在游
戏过程中发生改变,然而,在开发过程中它们却可能经常变动。为了便于修改,一个常规的做法是把这些数据放到外
部文件进行保存,杜绝硬编码。
&&&&&我们会在今后的实战项目中选择使用plist(property list)保存静态数据,并使用plist编辑工具进行必要的修改。在
程序中,通过调用以下代码读取文件,并以字典的形式存储在缓存中。
CCDictionary* dic = CCDictionary::createWithContentsOfFile(const char *pFileName);
提示:对于静态数据的存储,我们还有许多备选方案,例如,使用CocosBuilder存储精灵的坐标、角度和比例等信息,亦或是使用PhysicsEditor存储物理游戏中刚体的参数等。大家有兴趣的话不妨进一步探索方便我们开发的工具。
2、动态数据
&&&&&&相对于静态数据,这部分数据在游戏过程中会频繁变动,例如玩家的金币数和经验值等。所以,我们需要选择便
于在程序中读写的数据保存形式。
&&&&& 对于MyFishingJoy项目而言,动态数据有玩家的金币数以及音乐音效的大小。这些数据都是线性结构,没有嵌套
关系,而且数据量也很小,因此我们使用Cocos2d已经封装好的CCUserDefault即可。
提示:也许有些朋友会觉得使用SQLite、JSON或者其他一些技术看上去显得酷一些,但在实际开发过程中,慎重
选取更简洁、更符合需求的技术,往往能更好地降低开发的人力和时间成本,也能够使程序的效率得到提高。
四、控制器(Controller)
&&&&& 控制器主要负责模型和视图之间的信息传递。在Cocos2d的定义中,CCScene作为场景内所有内容的载体出现,
而其本身并不直接在界面上显示。这无疑是最好的控制器。我们可以在这里进行数据与场景、场景与场景之间的交
互,即将CCScene类的对象作为逻辑控制和信息传递的“总司令部”。
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有  先上几个自己写的,因为最近要用cocos2dx,所以就边学边开发几个小游戏玩玩,有捕鱼,连连看,还有打地鼠!都不算完整的项目,不过拿来学习还是可以的,或者在基础上再二次开发,扩展自己!
  1:捕鱼的
  先来几张效果图:
  就是这样一个项目,不到鱼儿之后,放到左下角的鱼缸里,就可以获得分数,可以做成捕蜻蜓或者类似于捕鱼达人那种!
  下载地址:/s/1i3lDyM5
  2:打地鼠
  先来几张效果图:
  这个游戏就比较简单,当时还是没有做太多的优化,就简单做了一个demo,有意思的同学可以加上时间限制,或者分数计数器
  下载地址:/s/1hqkt5aO
  3:跑酷
  先来几张效果图:
  这个游戏是coscos2dx权威教程那本书上的例子,不过也有很多可以优化的地方,例如速度方面的设定,还是就是在碰撞算法上!
  下载地址:/s/1mguuIfu
  4:俄罗斯方块:
  先来几张效果图:
  俄罗斯方块没有什么可说的,主要侧重点在算法上
  下载地址:/s/1c0nj27m
  5:连连看:
  先来几张效果图:
  同样是一个半成品,只做了demo,连连看的算法相对比较麻烦,设计到二次拐角!demo中只给出了一般的算法,有兴趣的同学可以再基础上再扩展算法,也可以再添加上计数和倒计时比较好!
  下载地址:/s/1hqkt5aO
阅读(...) 评论()You are here:
王哲详解:Cocos2d-x 3.0引擎带来了什么?
GameLook报道 / 触控科技近日发布了Cocos2d-x3.0RC版本,主打开放、原生、创新路线。作为全球三大游戏引擎之一,Cocos2d-x吸引了国内外一批优秀的开发者和游戏作品,包括《放开那三国》、《刀塔传奇》、《BadLand》、《勇者斗恶龙》、《Dragon City》、《Line Play》等。新版本的Cocos2d-x引擎在跨平台游戏开发、打造完整的工具链、包含完整开发流程方面,做了更进一步的尝试。为了更全面地了解Cocos2d-x 3.0的性能特性,《程序员》日前对触控科技副总裁、Cocos2d-x游戏引擎作者王哲进行了专访。
Cocos2d-x 3.0的性能优化
《程序员》:较之上一个版本,Cocos2d-x 3.0在哪些方面做了改进?
王哲:在Cocos2d-x 3.0中,我们着重改进一些很基础的工作,从之前发布的Alpha版本来看,大家最关心的主要围绕以下三点:性能、兼容性(尤其是Android手机的兼容性)、CPU和内存消耗。在性能方面,我们优化最好的是自动技术、当一个游戏场景大出手机屏幕很多时,引擎会自动帮你把屏幕之外的东西给剔除掉,这使大场景游戏的流畅度有2~8倍的提升。另一个是模拟合并,从技术支持的反馈来看,有50%的开发者不懂得如何使用这个功能,而在3.0中,该功能可以自己判断是否开启,并且性能已非常接近与手动调试。在提升兼容性方面,我们测试了200款Android机型,较之2.2版本的85.71%,3.0版本的兼容性达到了90.71%,而在国外,一些引擎的兼容性只能达到三分之一左右。至于CPU和内存消耗,3.0比2.2版本的启动时间缩短了25%,CPU的平均占用率也降低了36%。
《程序员》:除了性能上的优化外,在具体的功能上你们做了哪些工作?
王哲:我们首先从新的渲染器着手。Cocos2d-x的核心结构就是场景结构树,它由一个根节点延伸出许多子节点。(如图1所示)
如果根节点向右移动200个像素,它的子节点也会跟着旋转200个像素。这种设计的局限性在于,由于Draw节点和Visit节点非常紧密,要访问某个节点就必须先画这个节点,由此造成批量渲染功能难以实现。而且如果想跨平台,就需要所有节点都支持新平台。我们建立了一个新的组件,它里面有一个渲染队列,每个节点都会发布它的渲染指令,这样,我们就可以分解Draw命令,Visit访问节点,实现批量渲染,并且所有OpenGL都会集中在渲染器里,因此,实现跨平台非常容易(如图2所示)。
第二是新的API,Cocos2d-x的代码中会看到一些Sprite C的用法,但它和C++是不同的语言,于是,我们将它改成了更符合C++程序员使用习惯的方式。例如,我们把2.0中使用的CCSprite改成了Sprite,用不同的命名空间来为Sprite命名。
《程序员》:有哪些修改和功能是来自开发者的反馈?
王哲:Critical Bug肯定是最先要解决的,此外还有平台不兼容,以及3.0中的XCode最新版本,有些开发者直接编译时挂掉了,这些问题肯定要优先解决。其他的还包括易用性,比如开发环境、Custom Draw以及Coding IDE等,这些功能都是大量开发者反馈需要的,所以我们就做出来了。
《程序员》:Cocos3d-x与Unity 3D引擎的主要区别是什么?
王哲:2D引擎发展到现在,表面上看其实都差不多,3D引擎也类似,最后拼得还是性能、效率,以及是否能用它做出比较炫的画面效果。Cocos3d-x发展到今天,至少做出了像《捕鱼达人3》这样比较炫酷的游戏,有这样一款产品来验证它。可以说,在稳定性、高性能这些方面,我们已经做的很好了,但在易用性上,说实话,差距还是挺大的,毕竟编辑器这些是Unity 3D的优势,但框架方面我们做得更好。
《程序员》:在技术实践中,有哪些团队对Cocos2d-x引擎的理解和操作堪称范例?
王哲:确实有一些,比如像《忘仙》和《君王2》,他们改掉了一些东西,比如在TextureCache里增加警戒线,达到某个警戒线就触发一个回调,在回调里面释放掉一些资源,通过这种方式来保证它的内存不会爆,不过这对于一般休闲类游戏的作用不大,我没有添加这个功能主要是不想增加引擎的复杂度。另一个是《刀塔传奇》,他们的技术人员很有意思,他们如果直接用Flash Dragon Bone格式导出,引擎可以直接解析。但他们觉得不爽,就自己写了一个Flash插件,把Flash里的骨骼动画导出到2DX里解析出来。所以,这款游戏里的动作打斗场景都是他们自己做的一套。
增强培训,与开发者共赢
《程序员》:你们与开发者通过怎样的方式进行交流?
王哲:我们的Issue System是开放的,开发者认为哪里不好,可以直接提交任务,我们每天都会有人去查看,如果某个问题提出的人多的话,我们会马上分配开发团队去做,这是一种很好的交流方式。此外,CocoaChina上有几万个帖子,我们也长期有专人维护,对开发者提出的问题进行统计,针对高频问题我们会马上修改。
《程序员》:除了外语教材外,你们在海外推广和对海外用户的技术支持方面还有哪些举措?
王哲:在推广方面我们做的不多,只会定期公布一些用Ccocos2d-x引擎开发的热门游戏的名单。在对海外用户的支持方面,目前,Cocos2d-x的教材已包含:中、日、韩、英、西五种语言。在接触方面,应该还是跟日韩的开发者接触多一点(因为游戏风格和地理位置与中国都比较接近),比如2013年11月在韩国举办的开发者沙龙等。此外,日本有一个自发Cocos2d-x学习社区叫“知友会”,他们会定期组织一些活动。2013年12月我和林顺在参加了他们组织的线下沙龙并做分享。另外,他们还会帮我们把社区里的文档翻译成日语,以便更好地帮助本土开发者。
《程序员》:目前,你们已经与一些高校合作,使Cocos2d-x的开发作为学分课程,那么,课程的设置及合作模式是什么样的?
王哲:整个课程设置的核心围绕着Cocos系列工具,包括Cocos2d-x和CocoStudio等。但在前期调研时发现,很多学生不仅想学习知识,还非常关注行业动态、开发流程,甚至游戏运营等问题。基于此,我们共设置了9门课程,从游戏的开发概论、行业数据分析、游戏策划、美术,一直到游戏运营。每个部分按单元来划分,每个单元32个课时。另外,我们还与学校合作,建立了实训基地,让学生可以实际体验游戏开发的全过程,如果有人想创业,我们也会提供技术和资金上的支持。最后,在师资方面,目前大部分课程是由触控的工程师负责授课。我们正在加强对高校的老师的培训,帮助他们掌握最新的开发知识。
& 2016 . All rights reserved.极客学院温馨提示:您的浏览器需要更新才能访问哦 ( ^_^ )
使用一款优质浏览器,是成为极客的关键一步!
您正在使用的浏览器内核版本过低,除了有可能遭受病毒与恶意软件的侵袭之外,也无法体验到最新互联网技术带来的优质显示与交互效果。极客学院网站大量使用了HTML5与CSS3技术,为确保您能够体验到最佳的浏览效果,我们推荐您选择使用下列最新的优质浏览器:Pages: 1/9
主题 : 【社区活动】7天学会使用Cocos2d-x 3.x实现《捕鱼达人3》的3D效果【答疑笔记已更新】
级别: 管理员
UID: 98590
发帖: 2580
可可豆: 14328 CB
威望: 7466 点
在线时间: 8041(时)
发自: Web Page
来源于&&分类
【社区活动】7天学会使用Cocos2d-x 3.x实现《捕鱼达人3》的3D效果【答疑笔记已更新】&&&
本帖被 阿花君霸占路人 执行取消置顶操作()
《捕鱼达人3》以其精致的游戏画面,立体化的造型,鱼儿180°的回转及全场景的自由游动等众多惊喜~~~为无数的捕鱼达人们带来了新奇而震撼的游戏体验~~~~!!
众所周知,《捕鱼达人3》采用Cocos2d-x 3.x版本中的3D功能进行开发,实现了完全的3D化。Cocos2d-x3.0引擎在渲染器、性能、兼容性、稳定性等方面与前作相比都有了质的飞跃。作为游戏“心脏”的引擎得到了大幅的性能增强,最直观表现在游戏上,便是画面得到了大大的改善,《捕鱼3》不仅延续了以往细腻、精致的特点,还拥有了迪士尼梦幻卡通风格,更加惟妙惟肖,栩栩如生。本周社区邀请到Cocos引擎教程组的为大家分享【重磅教程——如何用Cocos2d-x 3.x实现《捕鱼达人3》的3D效果】手把手教大家《捕鱼3》中的神奇特效都是怎么实现的!!!!卞安老师简介:网名“红孩儿”,资深游戏开发者,Cocos2d-x知名博主,现任CocosStudio产品总监及Cocos2d-x 3D模块 产品设计师。本次教程一共4节课:每周更新2节,每周选取一天下午2点-4点,卞安老师与大家在线互动,为大家解决游戏中的难题!!!课程表!!                                     课程教程内容教程更新时间在线答疑时间第一节8月7日8月14日下午2-4点第二节8月8日第三节8月13日8月20日下午2-4点第四节8月14日
希望学习本教程的同学,踊跃在本帖中提问!!!!!学习后把完成的游戏源码和截图发布到本帖中,卞安老师会对所有的作品进行点评,有创新的、优秀的作品发布者将获得Cocos2d-x纪念抱枕一个!下面请看奖品!
如果大家对于CocoaChina有任何意见或者建议可以发邮件到:
级别: 管理员
UID: 301302
发帖: 1459
可可豆: 1465 CB
威望: 2107 点
在线时间: 2289(时)
发自: Web Page
Re:【重磅教程】学会用Cocos2d-x 3.x实现《捕鱼达人3》的3D效果
第一期在线答疑精华!!!!!!!!!引用 引用第23楼yff-08-13 19:08发表的  :请问3D骨骼动画模型是用什么工具制作的 一般用3ds Max或MaYa 引用 引用第24楼dl于 00:22发表的  :请问下  使用cocos2dx3.2版本  编译到android 上的  无法找到 cocos-ext.h如何解决 有可能是Jni下的Android.MK文件中缺少相应的包含目录,你可以参看TestCpp的MK文件。 引用 我看到教程下面有留言:3d/CCBundle3D.cpp line 839 原代码在计算_modelRelativePath时存在错误,导致编译结果找不到.png文件,可以按下面方式进行修复for( const auto &item : list ){ ssize_t itempos = fullModelPath.find(item);if ( itempos != std::string::npos ){ _modelRelativePath = fullModelPath.substr(0, itempos + item.length() + 1);} } 
UID: 93168
发帖: 1005
可可豆: 34578 CB
威望: 35669 点
在线时间: 2466(时)
发自: Web Page
卞安老师辛苦
发帖: 1052
可可豆: 124034 CB
威望: 126038 点
在线时间: 2515(时)
发自: Web Page
学习!!!!!!
图文唐诗三百首,图文国学合集汉语词典速查版:最新现代汉语词典 新华字典 成语词典大全-中文好助手
UID: 78198
发帖: 3543
可可豆: 3376 CB
威望: 13237 点
在线时间: 4586(时)
发自: Web Page
招学徒.. 微信whglyy
UID: 78198
发帖: 3543
可可豆: 3376 CB
威望: 13237 点
在线时间: 4586(时)
发自: Web Page
竟然比我收到的抱枕还高级~
招学徒.. 微信whglyy
UID: 300874
发帖: 2378
可可豆: 3131 CB
威望: 3189 点
在线时间: 1378(时)
发自: Web Page
不错。赞!期待~
级别: 管理员
UID: 301302
发帖: 1459
可可豆: 1465 CB
威望: 2107 点
在线时间: 2289(时)
发自: Web Page
人工置顶~~
级别: 新手上路
可可豆: 30 CB
威望: 30 点
在线时间: 40(时)
发自: Web Page
级别: 侠客
可可豆: 257 CB
威望: 258 点
在线时间: 363(时)
发自: Web Page
我想要抱枕
Pages: 1/9
关注本帖(如果有新回复会站内信通知您)
8*2-5 正确答案:11
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版

我要回帖

更多关于 cocos2dx捕鱼源码 的文章

 

随机推荐