cocos2d转unity3d小结
unity3d第一个项目已经算是完成了,从cocos引擎转过来也有一段时间了,下面列出一些在使用中遇到的坑或者unity3d与cocos2d差异比较大的地方。适合其他引擎转U3D或者纯新手小白,万一有路过的大神请 踩了我这朵野花 指出错误,好好学习天天向上。游戏主要是2D界面,搭配live2d伪3D效果。 我也想做纯3D的可是没有钱啊。
一 .版本以及部分插件工具
(1).unity_5.3.5p6
(2).UGUI
(3).DoTween
(4).SceneManager
(5).live2d
(6). playerMaker;Anti-Cheat (都已弃用)
二.经验总结
(1).分辨率适配
1.使用UGUI Canvas Render Mode :Screen space-Camera 绑定摄像机,摄像机采用正交 Orthographic Canvas Scaler:UI Scale Mode 采用 Scale With Screen Size ; Reference Resolution 使用640*960分辨率, Screen Match Mode:expand.
2.部分背景设为1136*1136 在iphone5,6上依然会有白边,目前解决方案是背景设为1138*1138。
3.建议美术CG与背景出图大小为,1024*1024(不重要的背景可512*512通过拉伸显示)。
(2).资源相关及优化
1.图片尽量使用尺寸为2的次幂 32*32,64*64 到 2048*2048,format 采用 compressed 压缩,个别尺寸不好做处理资源又大,可以采用16bit,采用这一方法美术需少使用渐变色,否则图片会严重色块化。
2. 图片也可直接导入PSD(相当于图集),texture Type 使用Sprite(2D and UI); SpriteMode 使用Multiple, 然后使用 Sprite Editor自动切割,适用某个界面一堆小图。缺点是每次替换PSD需重新切割,改动有可能会使之前自动切割的被重新命名。
3.图片参数需把Generate Mip Maps 选项勾掉,可减少一定大小,这个选项的功能是在3D游戏中视野远近影响物体模糊。
4.字体可使用ttf,不需要美术单一出atlas, text控件也支持富文本、描边、阴影等。
5.plist不再可用,策划需提供TEXT文本或JSON等。
6.音频文件支持.AIFF .WAV .MP3 .OGG 。
视屏文件支持.MOV .MPG .MPEG .MP4 .AVI .ASF。
7.修改stripping level,通过库剖离来减少DLL的空间大小。
(3).UGUI、脚本、其他控件相关
1.一个场景尽量使用一个canvas,需显示不同层级可使用多个摄像机,不同摄像机culling mask不同layer,通过修改摄像机Depth来控制层级关系。
2. live2d比较特殊,如果需要将其他控件置于它的上面,除了用单一摄像机照射外,还需改变Live2d的Z轴与它摄像机Clipping Planes的Far参数。
3.需要做屏蔽层,只需创建一个panel 即可,改变它的层级即可屏蔽下方的点击与触摸。
4.如果在一个button上添加image等其他控件,其他控件的范围大小也会影响到按钮的点击区域。
5.支持帧动画,只需全部选中图片拖入Hierarchy即可生成。
6.U3D粒子系统不支持particle Designer等粒子生成插件,但源生的功能更强,可实现预加热功能。
7.动画建议使用自带的animator控件,也可以使用ITween,DoTween,HotTween等一些插件来实现简单的位移变形等。
8.如果使用tween类插件,建议使用DoTween,更加类似cocos写法,性能优化等比较好,(NGUI自带itween)。
9.注意所有的tween类插件均不支持image sprite单个透明度的变化,只能修改材质透明度,而所有的UGUI image控件共用同一材质,除非每个image单独添加材质。也可通过单独手写脚本来控制透明度变化,需要在update里计算,比较繁琐。
10.脚本中一般使用的update有 Update 与FixedUpdate等,update 跟当前帧数相关,fixedUpdate则是物理时间,所以一些物理逻辑要放入FixedUpdate进行。
11.想在场景切换后还保持某个GameObject存在使用方法 DontDestroyOnLoad(transform.gameObject);
12.把一些模型投影到ui上可以用RenderTexture,也可用这个创建小地图、镜相、动态阴影等效果。注意rendertexture消耗比较大。
13.unity 5.0后增加了AudioMixer混音器,可以把所有audioSource输出放入同一音轨,通过这个实现全局音乐开关和音效开关。
14.游戏暂停可使用 Time.timeScale = 0。
15.使用u3d自带animator编辑动画,动画结束后可添加回调、动画可倒播。通过状态机可完成比较复杂的动画模块,特定情况下的动画需要与脚本同时控制。
16.3D物理碰撞同样使用于2D,GameObjecr上需添加刚体控件。
17.粒子贴图与cocos相似,尺寸大小最好小于64*64。
(4)多语言
1.简体版与繁体版,通过修改text所挂的ttf来实现,文字尽量在unity里输入,减少贴图上文字的数量,这样只需改变ttf即可实现简体繁体的切换。
2.英文版等共存,unity内需要输入的文字全部写在text里,需要写脚本通过key value来读取每个text显示的内容。
3.一些界面图片上的文字不好通过UNTIY输入来替换的(比如IAP礼包等界面),可创建多个不同的prefab,进入场景时候通过区分
语言环境来调用。
(5)与IOS Android 交互
1.多语言 通过Application.systemLanguage区分当前设备语言环境。注意:ios9以后Unity通过Application.systemLanguage返回的简体中文和繁体中文都是SystemLanguage.Chinese,所以需要在ios 上返回当前语言参数给unity。
2.ios上显示插屏等会应为Unity 的rootViewController时长改变而造成奔溃或者不显示,需要在调用第三方SDK弹出时候添加
UnityAppController *appController = (UnityAppController *)[UIApplication sharedApplication].delegate;
3.Andoird 需要在点击购买后弹出屏蔽层,否则点击过快或造成传入的参数改变。提供去除屏蔽的回调,java层在购买和失败后调用。
4.iap与兑换码最好写成单例,某些Android渠道要求在一开始调用IAP回调,回复购买只在IOS与google版本中显示,需留好接口在不同渠道中开启或关闭。
5.unity使用ARC,ios某些广告低版本SDK未使用,需要在这些广告类中单独添加参数 -fobjc-arc。
三.遗留问题
1.shader等使用不熟练。
2.过场采用sceneManager插件,用GUI实现,如使用UGUI animator如何实现。
3.所有按钮点击放大等效果公用一个animator,再触摸屏幕其他区域有可能会使其他按钮响应放大效果。
4.Android下手机如果有系统提示或来电,在进入游戏内游戏声音丢失,需重启游戏。
5.scorllview背包等因为包含物品数量较少没有使用动态池。
Unity3d和Cocos2dx有什么区别?
一、区别:1、COCOS2D开源,有文档支持,论坛资料庞杂博大;UNITY3D闭源,有强大的文档支持,论坛资料一样的庞杂博大。2、COCOS2D免费;UNITY3D收费。3、COCOS2D的跨平台,需要大量重写代码;UNITY3D的跨平台,程序员只需要选选按钮就淡定许多的搞定了。一、拓展:1、不同:(1)COCOS2D拥有令人发指的可定制性;UNITY3D有一个专门为订制而写的类库。2、相同:(1)UNITY3D和COCOS2D-X都是跨平台的游戏开发引擎。
cocos2d-x工程师应该掌握什么技能
职业前景
随着移动互联网的发展,Cocos2d-x游戏开发工程师已经成为薪资增长最快的职业,截至2013年底,平均月薪达10162元。
简介内容
本路线图课程面向零基础学员,目标是让学生深入学习C++后,对Cocos2d-x的所有核心功能有一个深入的了解,并可以使用这些知识开发完整的游戏项目,包含《征服C++ 11》、《从零开始掌握Cocos2d-x 3.x》(共12季)、《Cocos2d-x项目实战:仿微信飞机大战》、《Cocos2d-x项目实战:星空大战》4套视频课程。课程采用Cocos2d-x最新的版本,视频中所有的例子可同时适用于XCode、Eclipse和Visual Studio 2013,读者可自由选择自己喜欢的开发平台和开发工具。
学习建议
1、有些demo如测试多点触摸、传感器等,只能在移动设备上进行测试,不能在PC上测试,所以对于这些Demo,只能选择XCode和Eclipse(可生成Android的APK文件);
2、本系列课程从C++的基础开始讲起,涉及到了标准C++的几乎全部内容,并且通过《从零开始掌握Cocos2d-x 3.x》视频课程深度讲解了Cocos2d-x中的核心开发技术。学员通过这两个课程就可掌握用于开发游戏的最核心的技术,然后再通过《Cocos2d-x项目实战:仿微信飞机大战》和《Cocos2d-x项目实战:星空大战》两个实战课程,可以对使用Cocos2d-x开发游戏的流程有一个深入的理解,并学会如何将知识转化为生产力。
3、如果学员的C++基础很薄弱,建议先学习《征服C++ 11》视频教程的基本部分,然后再学习Cocos2d-x的相关知识。当然,C++和Cocos2d-x也可以交叉学习,相辅相成。如果C++和Cocos2d-x都掌握了,可以继续看后面的两个游戏实战类的项目。
Unity3d 和 Cocos2dx有什么区别
UNITY3D和 COCOS2D-X都是跨平台的游戏开发引擎,COCOS2D是专门做IPHONE游戏的2D游戏引擎。
下面就从多个方面来对比阐述一下:
1)是否开源
COCOS2D开源,有文档支持,论坛资料庞杂博大;
UNITY3D闭源,有强大的文档支持,论坛资料一样的庞杂博大。
开源对COCOS2D来说,意味着可以进行随心所欲的改造,可以更深入的了解各种游戏需求的底层实现原理,更可以订制出更符合自己要求的类库。
相对的,它的麻烦也不小,因为开源,所以可以随便改,因为可以随便改,所以很容易改错,而且调试维护的成本也会倍增,因为更接近底层,所以往往实现一个功能的时候或者自己要更费周折。
闭源对于UNITY3D来说,意味着更能方便的使用,更有质量保证,同时意味着偶尔有使用者看不到的想看的内容,想接近底层会花费巨大的代价,想订制一种自己的数据结构或者功能来添加进去的时候很难下手。
2)是否免费
COCOS2D免费,免费意味着,服务差,很多程序员不想看到的现象会莫名其妙的出现,偶尔作者不小心出点意外什么的没有什么可以控制的方法…例如,作者一不小心使用了一种非常危险的方法来写代码,这个时候基本上使用者欲哭无泪,查起错误异常艰难,但是总能查出来.免费的好处是,有一天如果用COCOS2D做了一个很牛逼的游戏,可以正当光明的说,这个游戏是我们做的,游戏质量很好,而且不用恐惧有人冲过来收钱。
UNITY3D收费,收费意味着…服务真心是不错诶,U3D小组力求把麻烦留给自己,方便留给程序员,所以用着还真是爽,很多麻烦都被U3D消灭在萌芽阶段,真心好,但是,要钱的。
3)跨平台能力
两者都能跨平台。
COCOS2D的跨平台,需要大量重写代码,面对各种平台的各种细节麻烦.所以当使用COCOS2D的时候,很多麻烦来了,于是再面对平台特定的更麻烦的问题的时候,程序员基础好很多,更容易搞定
UNITY3D的跨平台,程序员只需要选选按钮就淡定许多的搞定了,但是当面对U3D团队没有想到的平台特定的更麻烦的问题的时候,这个时候的程序员,需要使劲的“吃”键盘来克制自己内心的焦虑吧…
4)团队开发
cocos2d压根就没往团队方面想,所以团队配合方面的工具,程序员基本自理,细节问题自理,麻烦问题自理,UNITY3D想了一些,做了很多,但是也有纠结的地方,程序员在没有完全理解的基础上使用会变得很难接受.值得一提的是,UNITY有强大的所见即所得能力,动态解释,现场执行,COCOS2D一直在向着这个方向努力,或许在未来某一天两者也会不相伯仲
5)周边工具
COCOS2D是集体智慧,各路人马都提供了各种各样的工具,COCOS2D将他们整合到了一起,各种工具都有各种麻烦,也有各种好处,总的来说,花点精力还是有好结果的。
UNITY3D自家解决了很多麻烦问题,周边工具也有很多人做,但是,不开源,而且要钱,服务好很多。
6)可定制性
COCOS2D拥有令人发指的可定制性,因为从C++写起,所以程序员可以为所欲为,为所欲为的代价就是,所有细节都要照顾,所有麻烦都要生顶(例如,写出的工具不跨平台,订制的数据结构无法通用,序列化一个类到其他平台之后无法反序列化等等)。
UNITY3D有一个专门为订制而写的类库,没怎么用过,但是可以确定的是,这个类库是跨平台的,这个优势很伟大。
7)3D
这个U3D确实完爆COCOS2D,不过,要是不想做3D游戏呢?那多余的3D功能也会很累赘。
总而言之,两家都是游戏引擎的大家,两者都能适应不同的需要,各具特色各有特点,估计谁也灭不了谁。
怎样看待越来越多cocos2dx程序员转unity3d,unity是否是大势所趋
1.先说说为什么cocos2d-x之前那么火:
a.开源:每个CTO都认为开源可以
更好的掌控引擎,万一引擎坑了可以马上改,包的大小比较容易控制,跟平台语言相互调用也方便。2.x时期,坑是一点点填得差不多了,许多技术实力强的团队
也完成了自己的改造,
然而cocos2d-x在2.x到3.x期间引擎架构改了,连新建工程都一个版本一种方式,这期间坑多得让很多人都不想陪着踩一直用着2.x,现在好不容
易稳定了,已经失了许多人心。
b.专注2D:Unity在13年下半年才正式发布2d游戏的原生支持,之前必须依靠插件才能比较顺畅的开发2d游戏,显然已当时的手机性能,开发2d是比3d更可控,流程更短。因此当时在手游领域,cocos2d-x可谓突飞猛进,一日千里。
c.跨平台:虽然Unity也能跨平台还是一键发布,然而Unity 3.x~4.x只有收费版才能支持和平台语言通信(obj-c,java等),不买正版等于没法接各种sdk。所以还是cocos2d-x这个开源的C++引擎做起这些接sdk之类的平台相关的工作比较灵活。
d.cocos2d-iphone的口碑:这也是触控把cocos2d之父从Zynga挖过来做VP的原因之一,cocos2d-iphone作为iphone上早期的开源项目知名度和开发者数量都挺不错。
2.再说说Unity3d更值得选择的原因:
a.强大的编辑器:虽然不少程序员不太适应组件式的开发思维,然而配合稳定流畅设计合理的编辑器,很多工作可以分配给策划和美术,程序员专注于游戏逻辑。必要时通过资源商店可以购买种类丰富的插件和美术资源,甚至自己开发定制的插件,节省了宝贵的开发时间。
反观cocos2d-x,最近这个版本的cocostudio才感觉不卡,之前的用几十分钟就卡得不行……功能上算是慢慢赶上来了,然而要达到unity那种随心所欲扩展的境界,估计是不可能。
b.方便的跨平台:相比cocos2d-x那种还要打开ide导入工程才能发布跨平台的原始方式,Unity很早就支持了一些平台的一键发布,只需简单的设置。唯一不足的就是某些平台的发布体积较大,需要优化。
值
得一提的是直接发布webgl版本(通过il2cpp将c#字节码编译成c++再用emscripten将c++编译成js),目前时髦的浏览器都可以直
接运行,无须任何插件,这也让adobe互联网多媒体的霸主地位开始动摇。反观cocos2d为了兼顾web,搞出了cocos2d-js这样的方案,结
果是花费大量精力去做到js和c++方面api的步调一致,在发布的时候发现即使在web上流畅跑起来,要发布成原生版本还是有许多坑要探索。
c.领先的3d和日渐完善的2d支持:经过10年的积累以及近几年的高速发展,Unity的3d部分是比较成熟的,能够满足大部分游戏开发者的需求。配合强大的编辑器,cocos2d-x想要追赶没那么容易。2d的支持虽然比较晚出来,但是之前的许多优秀2d插件已经证明了Unity可以胜任2d游戏制作。
d.收费模式:现
在的时代,独立游戏是创新的代名词,对引擎来说,获得独立游戏开发者的青睐是非常有意义的。Unity在4.x的时候还扭扭捏捏,没法用个人免费版接
sdk,因为不允许和平台语言互调,而5.x是完全没有这个限制,也就是说个人免费版也可以调用java或obj-c写的插件了。
而收费版只是要求一年挣了十万美刀的用户必须买个正版,也就几千刀而已,比虚幻4那种要贡献部分收入的政策简直太良心。
3.综述:
cocos2d-
x本来是前景一片光明的,之前作为一个开源的跨平台手游2d引擎打出知名度,触控再用这个知名度去拿一些海外作品的代理间接变现。然而后面为了追求在财报
上直接体现引擎的价值,去走一条大而全的道路,什么都想做,2d的流程还没做好,又搞web和3d,什么都没做好。而Unity做了好用的编辑器,设计了
十分友好的制作和发布流程,以此为根基牢牢把持住3d引擎最大的市场占有率的同时,稳扎稳打,一边提升3d方面的质量,一边借鉴2d插件来开发原生2d功
能,更开发了新的ui系统(这部分还开源了),还有通过建设资源商店以及游戏视频分享平台等等周边服务来维持一个健康的生态,整个战略都十分清晰稳健。顺
便说下像虚幻4,cryengine这些3A领域的霸主,想要在手游和独立游戏这里跟Unity争抢一亩三分地,这方面的积累还是不够。
手
游行业现在已经进入了资本垄断大众市场,独立游戏争鸣小众市场的时代,无论是做更能给资本讲故事的重度游戏,还是追求艺术理想的独立游戏,Unity都能
很好提供一整套的成熟的解决方案,反观cocos2d-x已然乱了阵脚,只是在宣传上下足了功夫,看我什么功能都有,看国产排行榜上多少个游戏是用我开发
的……然而用起来是那么的艰涩,除非是技术实力、人力都充足的中大型团队可以在开源的基础上改造改进,其他小团队只能依赖引擎方的,在远景上已然黯淡。所
以我个人认为,Unity是游戏从业者的一个比较好的选择。以上拙见仅供参考。
如何学习 cocos2d-x
刚巧我也是从AS3转到了cocos2d-x,说说我的经验吧。
一、 cocos2d-x 部分
1.1 技术选型
从第三个手游开始,我实在被Adobe的ANE和国内的小平台折腾得没了脾气,决定转到cocos2d-x。在选择哪种语言绑定的时候纠结了很久,最后力排众议选了 lua:Cocos2d-x script language binding:Lua or Javascript? 。cocos2d-x 2.x 的lua绑定做得并不好,于是我选择了 quick-cocos2d-x 。
1.2 学习 C++
《C++ Primer》 是不错的入门书籍,建议看第五版,我写过一篇 C++Primer 第4版和第5版比较 。学习期间建议画一些思维导图帮助理解和整理思路。例如这个(不完整):
1.3 学习DEMO和熟悉开发平台。
编译 cocos2d-x 自带的 TestCPP 项目,全部跑一遍。熟悉 cocos2d-x API 的用法。记得生成文档,建议每个API的功能都浏览一遍。
在学习DEMO的过程中,你还必须熟悉自己开发平台的IDE,例如Windows上必须熟悉 Visual Studio,而OS X上必须熟悉xcode,Linux平台上就熟悉Eclipse+CDT吧。
注意,quick-cocos2d-x 是不支持Linux开发平台的。
1.4 了解引擎的文件夹结构
基于 cocos2d-x 源码生成的文档并不怎么详细,许多功能必须看源码。但这个阶段,我不建议纠结源码太深,倒是可以纠结一下 cocos2d-x 的文件夹结构,看看各个类放在什么地方,找一找常见的哪些宏和常量以及枚举定义在什么地方,这花不了多少时间,但能让你对cocos2d-x有更深刻的了解,同时给你很强的成就感。这种成就感冲淡了你面对大量源码时候的无力感,让你能够继续前行。
下面是我的分析:
1.5 重复上面的第3步:再次学习DEMO
这时候看DEMO可能会轻松不少,但是你会有更多的问题去纠结。例如多分辨率支持?例如坐标系统?例如绘图功能?例如层级管理系统?例如事件传递系统?等等等等……这时候可以去Google(注意不要用百毒和其他搜索引擎)找文档看了。我推荐一些我看过的不错的文档和博客:
Cocos2d-x 多分辨率适配完全解析
Cocos2d-x官方中文文档 v2.x
子龙山人 – 博客园
红孩儿的游戏编程之路
Cocos2D | iOS Development Tips & Tricks by BiOM
Ray Wenderlich
Cocos2d-x | Cross Platform Open Source 2D Game Engine
许多博客都是极好的。红孩儿 写了许多源码分析,每一句源码都加了详细注释。虽然我不太认同他这种吃力不讨好的方法,但这对于新手来说确实是有很大帮助的。
另外在 Stack Overflow 你能找到绝大部分问题的答案。当然,许多问题是针对 cocos2d 而非 cocos2d-x 的,不过用法相同,照看不误。许多优秀的文章都是基于 cocos2d 的,所以,不要介意,可以先花半天时间熟悉 OC 的语法,能看懂即可。
暂时不要买中文书。我曾经花3天时间看完了 《Cocos2D-X游戏开发技术精解》 和 《cocos2d-x手机游戏开发–跨iOS、Android和沃Phone平台》 ,发现作者其实就是来赚稿费的。
忘了广告了,我的博客(cocos2d-x | zrong’s Blog)也有一些cocos2d-x内容,欢迎来喷。
1.6 熟悉工具集
现在你应该对周边工具感兴趣了。例如帧动画使用什么制作?BMFont使用什么制作?骨骼动画呢?plist文件怎么编辑?碎图用什么工具拼合?有些项目上,你有许多选择,也可能没得选。去Google吧,如果遇到选择上的问题,欢迎找我讨论。
二、 quick-cocos2d-x 部分
2.1 现在就到lua时间了
请认真读完 《Lua程序设计(第2版) 》 第一、二、三部分。第四部分可暂时不读。
2.2 熟悉 quick-cocos2d-x 的文件夹结构
相信有了上面 cocos2d-x 的基础,这个应该不难理解。
2.3 跑完 quick-cocos2d-x 自带的所有sample
在这期间,熟悉 framework 中的所有封装。可以参考 quick网站 和 quick wiki 。
2.4 学习导出API给Lua使用
导出 C/C++ API 给 Lua 使用
三、学习 OpenGL ES
熟悉Lua部分之后,作为一个有志于成为程序员的码农,依然要回到C++来,这里才是 cocos2d-x 的本质。
cocos2d-x 使用 OpenGL ES 进行渲染的,如果要对 cocos2d-x 的渲染层进行任何形式的扩展,你完全避不开 OpenGL ES。
既然逃不开,那就对她说,请张开双腿,我要上。
3.1 阅读 OpenGL ES 2.0 Programming Guide
下面是这本书的官网,目前已经出了 OpenGL ES 3.0 版本,cocos2d-x 使用的是2.0。
http://www.opengles-book.com/es2/index.html
这本书写得浅显易懂,非常适合新手。有位网友花3个月时间翻译了中文版,但还是建议你不要看了。
这里是 OpenGL ES 的 官方文档 和 API中文翻译 。
当然,你也可以买那本著名的 OpenGL 红宝书 《OpenGL编程指南(原书第7版)》 来看,不过 OpenGL ES 相对与 OpenGL 来说还是有一些不同的,你要知道如何区分这些不同。
3.2 尝试理解 cocos2d-x 的渲染部分架构
相关的类我就不列出了,我正在酝酿一个这方面的系列文章准备发到博客上。如果写完了,我会在这里更新。
3.3 自己写一些滤镜、绘图功能的扩展
例如这个: cocos2d-x-filters
四、回归项目
到了这里,你可以开始你的项目了。虽然源码还没有读完,但相信整个架构都能理解了。在做项目的过程中,再去一点点读源码是比较快捷和我能够接受的方法,否则就太枯燥了。
你可以还需要选择一下cocos2d-x相关的工具。你可能听说过 CCB(cocosBuilder)和CCS(cocoStudio),尝试了解她们,再决定是否使用她们。
你已经有了AS3的基础,这样许多前端的概念和经验已经很丰富了。这些经验在cocos2d-x中同样适用。但是要注意的是,cocos2d-x不是AS3,不要试图用AS3的方法去使用cocos2d-x。
有位码农在从C#转到AS3的时候向我抱怨:为什么Flash Builder没有Visual Studio的这个功能那个功能?
然后这位码农在从AS3转到Sublime Text(用于Lua编辑)的时候向我抱怨,为什么Sublime Text没有Flash Builder的这个功能那个功能?
上面是个笑话。
同时,为了解决一些cocos2d-x没有提供的功能,你必须去学习相关的知识。例如这个:在 cocos2d-x 中使用 libcurl 实现上传文件功能(附quick-cocos2d-x封装) 。不过你现在已经有了基础,学习这些不是难事。
在有时间的时候,可认真读一下上面提到的《Lua程序设计(第2版) 》第四部分,了解Lua和C语言通信的方式,顺便看看cocos2d-x里面是怎么实现的。
另外,一些你需要的引擎中没有的功能,也可以顺手实现了开源出来(例如这个: 一个LuaSocket封装 ),说不定你需要的东西正好是别人也需要的。
五、熟悉发布平台
既然是做手游,Android和iOS平台是逃不掉了。
你要熟悉Android和iOS平台的特点,熟悉JAVA语言在Android上的应用,熟悉Objective-C在iOS上的应用,熟悉Eclipse ADT和XCode(上面应该已经熟悉过了)。
你还要熟悉Google Play和AppStore的发布流程以及方针、政策,内购的接入、SDK的嵌入。
你要学习和各个接入平台的程序员、商务、前台小妹打交道(因为经常会找不到你要找的真正的负责该SDK的技术人员),你要能忍受国内小平台糟糕的文档、代码规范和逆天的编程方法。
终、没有终点
上面说的并不完整,应该遗漏了不少东西,但我只能说这么多了。因为我的经验也止于此。
转载,仅供参考,祝你愉快,满意请采纳。
如何利用Cocos2d-x开发一个游戏
如何利用Cocos2d-x开发一个游戏?
这个问题的结果应该是一个流程。我将从一些长期的PC端游戏开发经验结合Cocos2d-x的功能来进行说明。
首先,先确定游戏策划案。确定策划案则确定了游戏的规模和所需要的模块。而所需要的模块则带来对于数据的需求,数据的需求则引出配置文件以及编辑工具的需求。
然后,确定所使用到的工具以及要开发的工具。通常来说,一个2D的RPG或ARPG类型的游戏会可能用到的工具主要有以下几种,它们按照使用的顺序应该是:
(1)图元素管理器:负责图片的编辑,生成块切割数据。
(2)动画编辑器:负责图元素的导入,生成动画。保存动画数据。
(3)特效编辑器:负责图元素与动画的导入,生成各种粒子特效。保存特效数据。
(4)NPC编辑器:负责动画导入生成NPC动作,编辑NPC的位置锚点。动作中的事件或人物脚本。如果需要也可以在这里导入特效编辑技能。保存NPC相关数据。
(5)界面编辑器: 负责使用图元素和动画,特效进行界面的布局编辑与事件脚本函数。并将数据保存
(6)场景编辑器:负责生成横纵向或45度视角格子地图。并使用图元素或特效进行场景的背景,地表,建筑等层编辑。还有将NPC布置在相应位置。
“公欲善其事,必先利其器”。以上六种工具是成熟的开发团队所要必备的。对于一般个人开发的规模较小的游戏,这些工具并不是必须的。可以省略或使用一些网络上公开的工具。而要开发规模稍大点的游戏,如RPG类型的游戏,所需要的工具通常要自已进行有针对性的开发。而且不仅限于这些工具。
当你具备了你需要的编辑工具之后,你需要将它们交付给美术人员使用。美术人员将做好的图片由图元素管理器进行切割。在动画编辑器里制做相应的动画。在特效编辑器里编辑出需要的特效。在NPC编辑器中创建出具有多个动画动作的多方向的NPC,编辑NPC的位置锚点。并跟据策划案确定所需要界面。使用界面编辑器编辑好它们的布局。同时根据策划案的关卡在场景编辑器里编辑出场景。
美术人员在开动的同时。程序需要进行游戏框架和所需要的类,功能函数的设计。编写出一个可以运行的逻辑框架。
然后,将各个工具导出的数据文件加载入框架。使它们显示出正确的场景,NPC,特效。
最后,调试测试程序。修改BUG。完成WINDOWS版本的游戏。
WINDOWS版本调试无误,移植到其它平台上编译运行。
注,NPC编辑器和界面编辑器是可以并行的。故都在第四步
如何在win7上搭建Android cocos2d-x-3.3开发环境
操作步骤如下: 一 win7 64位系统搭建Android开发环境需要的软件 1.cocos2d-x 3.3beta0 2.Visual Studio 2012/2013 安装完占硬盘空间近10G,Visual Studio 2012/2013 是需要注册码。 4.Android SDK (其中包括Eclipse) 5.Android NDK 6.Ant 7.Python 2.7.8不要下载3.x以上版本 二 软件安装 安装软件时不要安装在C盘。 1.Visual Studio 2012/2013 Visual Studio 2012/2013安装方法像安装其他软件一样,一路下一步就可以,但是注意安装前IE浏览器版本必须是IE10以上版本。 2.Python 2.7.8 安装方法同上,但是不要安装在C盘。 3.JAVA JDK JAVA JDK默认安装,这个可以安装在C盘。 4.cocos2d-x 3.3beta0 Android SDK Android NDK Ant 这些软件都是解压包,不需要安装,解压就可以。 三 cocos2d-x 3.3beta0 环境调试 1.打开cocos2d-x 3.3beta0所在的文件 [attachment=78978] 按Shift+鼠标右键,点在此次打开命令窗口。 现在可以看见画黄线的是软件变量名称,红线是变量路径。 正常的是4个变量名称4条变量路径,如果不是就需要手动添加,方法如下: 1.右键计算机(XP叫我的电脑,win7叫计算机)------2.属性------3.高级系统设置------4.环境变量------5.新建 6.在变量名中添加缺少的变量名,在变量值中添加路径。 如:变量名NDK_ROOT 变量值D:\android-ndk-r10b 软件名称 变量名 cocos2d-x 3.3beta0 COCOS_CONSOLE_ROOT Android SDK ANDROID_SDK_ROOT Android NDK NDK_ROOT Ant ANT_ROOT 再次.打开cocos2d-x 3.3beta0所在的文件,按Shift+鼠标右键,点在此次打开命令窗口。 如果看到4个变量名称4条变量路径就说明变量调试正确。 四 创建项目 1.打开cocos2d-x 3.3beta0所在的文件,按Shift+鼠标右键,点在此次打开命令窗口。 2.键入setup.py 回车 3.键入 cocos new项目名称 -p 包名 -l 语言cpp -d 项目路径 如:cocos new test-p tiaoshi -l cpp -d /test/android/cheshi 会在存放cocos2d-x 3.3beta0的盘符里出现一个名称为tset的文件,打开文件-----proj.win32-----TSET.sin 在Visual Studio 2013中点 调试------开始执行不调试
如何在win7上搭建Android cocos2d-x-3.3开发环境
android平台工程创建 1、android SDK+NDK安装 1)、安装java jdk(如果已经安装了,可以不用此步骤) 进入:http://www.oracle.com/technetwork/java/javase/downloads/index.html 或者直接点击下载。如下图 选择JDK DOWNLOAD(android 开发无需JRE) 32位windows 7选择Windows x86 ,64位windows 7选择Windows x64。 安装后,配置环境变量: 新建环境变量:JAVA_HOME 值为:D:\Program Files\Java\jdk1.7.0 新建环境变量:CLASSPATH 值为:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略) 在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略)到这里,JDK安装完毕。 单击“开始”—>“运行”—>输入:cmd命令,在CMD窗口中输入:java -version出现如下界面,就表示安装成功: 2)、下载eclipse 进入以下页面: http://www.eclipse.org/downloads/packages/ 选择windows 32-bit 下载,解压后直接打开即可。 3)、安装android sdk和NDK 进入以下页面http://developer.android.com/sdk/index.html 或直接复制此地址下载:http://dl.google.com/android/installer_r18-windows.exe 打开installer_r18-windows.exe 安装时会检查jdk安装情况,如果没安装成功会失败的。 然后运行SDK Manager.exe 进行更新sdk(根据需要下载对应版本的sdk)。 点解install packages。完成后,为了方便,也配置下环境变量 新建环境变量:ANDROID_SDK 值为:G:\Android SDK\platforms;G:\Android SDK\tools(这个是SDK存放的位置) 在系统PATH环境变量种加入:%ANDROID_SDK% 单击“开始”—>“运行”—>输入:cmd命令,在CMD窗口中输入:adb -h 进入http://developer.android.com/tools/sdk/ndk/index.html 或点击直接下载 下载解压到E:\android-ndk-r8 Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。 2、Cygwin安装 由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址: http://www.cygwin.com/ 下载后是个setup.exe文件,使用过程如下: 第一步:运行setup程序,直接点击Next进入下一步。 第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。 第三步:选择安装目录,比如C:\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。 第四步:设置本地包暂存路径 暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。 第五步:设置网络连接方式 第六步:选择下载站点地址 第七步:等待加载安装项载入,选择安装项 编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。(其实NDK需要的不多,主要autoconf2.1、automake1.10、binutils、gcc-core、gcc- , g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make ) 第八步:等待下载完成 下载完成时间决定于选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要2-3个小时(视网速而定),下载后压缩包约1.2G,下载完成后会自动安装到上文设置的安装目录。 提醒:第一次下载完成后,把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。 运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。 然后依次输入gcc –v,g++ --version,make –version,gdb –version进行测试,(注意空格和-)如果都打印出版本信息和一些描述信息,这说明cygwin安装成功了。 3、安装ADT和配置Cygwin 1 安装android 开发插件 (1)打开Eclipse, 在菜单栏上选择 help->Install New SoftWare 出现如下界面: (2)点击 Add按钮,出现如下界面 输入网址: https://dl-ssl.google.com/android/eclipse/ (如果出错,请将https改成http) 名称: Android (这里可以自定义) (3)点击OK,将出现如下界面 全部选中。 (4)点击 Next按钮 ,出现如下界面: (5)点击Next按钮,出现如下界面: (6)选择 I accept the terms of the license agreements 点击Next,进入安装插件界面 (7)安装完成后,点击Yes按钮,重启Eclipse。 选择android SDK解压后的目录(ADT 18 默认会扫描电脑,找到并配置好SDK位置)。 配置cygwin 在命令行中进入cygwin目录,并执行cygwin.bat,如果不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以登录名命名的新的文件夹。 修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加: (e/android-ndk-r8-windows/android-ndk-r8是安装ndk的路径) NDK_ROOT=/cygdrive/e/android-ndk-r8-windows/android-ndk-r8 export NDK_ROOT 然后保存关闭。 至此便基本搭建完毕cocos2d-x的windows 7 android 环境