自豪-cocos2d-x的灵活运用

简介:     由于原来公司不做3d客户端游戏引擎了,所以我在离职前夕思考了很多关于自己发展道路的问题,最后决定转战移动平台(ios)。因为今年刚刚毕业,所以转行更容易些。

    由于原来公司不做3d客户端游戏引擎了,所以我在离职前夕思考了很多关于自己发展道路的问题,最后决定转战移动平台(ios)。因为今年刚刚毕业,所以转行更容易些。10年来pc端积累的人才已经很多了(虽然发现的高手并不多),作为一个新人,虽然我很自信自己的pc客户端能力(大学四年的不断磨练),但是我毅然决定往这个新兴的领域进军,想在这片领域成为元老级的人才。我相信只要认认真真干,哪里领域都有施展自己才华的天空。


    回归正题,刚到现在这个公司不久(两周),通过看当前的一些项目,加上自己早先看的oc语法和以及编写了一些cocos2d-x的Tutorial,让自己对cocos2d有一些了解。但是这些零零碎碎的东西,总让我觉得不够系统,于是买了《Learning Cocos2d: a hands-on guide to building ios games with cocos2d, box2d, chipmunk》,希望从大师那里得到一些更权威地,更系统地认识,这本是还不错,能让初学cocos2d的我更全面的把握cocod2d,虽然只是停留在使用层面。正当我看完书,准备将案例从新编写之际,旁边的ios开发A(上司说他很牛)给我带来了一个极具挑战性的任务(这几天已经听到他们和策划说有很多任务没法做,很难做。估计要拉我下水了。因为我是另外一个项目的,但那个项目目前没有开始,所以我闲着)。

    A:”我们这边任务很紧,有些活需要人帮忙,我这里有我们参考的Flash项目的所有场景图(.swf)文件和对应的动画资源文件。现在我需要你把每个场景图里面的所有动画写成json文件,每个json对象包括id,x,y,photoName。你可以用截图软件参考这估计出每个动画的坐标,最后用ipad项目程序微调到和Flash程序一样的位置。”

    我:“截图工具?mac下的截图不好用啊,最后还要微调?”

    A:“没办法,要不然你怎么知道坐标,最后要微调的,你用截图软件估计出来的坐标不一定准,一般都要重调。”

    我:“有多少个场景图,一个场景图里面有多少个动画?”

     A:“40来个场景图,一个场景图有4,5个动画。我已经给你做了一个场景图的json文件,并把资源拷出来重命名了,资源要按这样的命名规则。”

     我:“你弄一个场景多的动画要多久?”

     A: “一个大概10分钟吧。”   


我沉思了会,纯手工些写json文件已经很繁琐了,还要用截图软件估计坐标,估完了之后还要拿项目程序来微调,其实最慢是微调,坐标他们都是硬编码的,为了改变一个动画坐标,需要重写坐标,就要重新编译,我擦,假如一个动画微调3次,每次编译启动程序加观察坐标是否正确如果是2分钟,那么 40个场景,每个5个动画,每个 3 * 2分钟,40 * 5 * 6 = 1200分钟,光微调就要1200分钟啊。而且最后还要保证资源不重复,需要看着这个动画以前是否存放过,而且要记住以前的名字!!!而且这个任务明显是策划做的吧!但我冥冥中觉得可以以柔克刚,编写工具来完成,这样既能完成任务,又能锻炼自己,也能让同事更清楚自己的水平,真是一箭三雕。于是。。。


    我:”这样做太繁琐了吧!“

    旁边的策划B开始发言。

    B:“没办法,我这有个工作更变态,我为了找坐标,我要开3个程序,要先从这个程序看它是否对不对,然后~~~~~~”。

    我都听不进去了,太麻烦了吧。

     我:“我觉得这样的工作,需要写个工具。”

    A:“工具也只能给你找出图片坐标,其他的什么资源还是要你自己弄,也省不了多少时间!”


     由于当时也没想清楚工具能帮多少忙,但是作为一个热爱动手编写工具美化生活的我,是坚决不能忍受做机器的活,一项一项的都是机器做的应该,让人来做太麻烦了。


    我:“能省点时间就省点时间吧”

    A:“也行,反正能弄出来就行,下周五之前完成就行,别太累!对了资源要确保只有一份!你看到以前出现过,你就别拷贝了,然后json里面photoName就些以前的。”


    我更感到,要保证200多个动画是否重复,记住那个唯一动画名称会让任务更复杂。这进一步激发了我做工具的欲望。冷静一想,正好看完cocos2d的书,没时间练习,正好拿这个当练习。只是我原来是个windows开发人员,windows下开发的小工具还行,mac平台的api从来就没用过啊,会不会很难搞啊。再想,也正好通过机会一起练习mac平台开发吧,每个平台的api功能应该相似,思路应该不会有太大差别,在docuement里面查查api说明应该就行了吧。


    抱着这样的想法,我开始准备开发一个所见即所得的工具(像3d游戏引擎里面的UI编辑器),能将场景图加载进去,并且自动加载当前场景图的所有动画,然后我能从一些面板上选择已经存在动画,并添加到当前场景图中,摆放到和Flash项目中一样的位置,然后把当前场景的所有动画导出成json文件,并将用到的动画资源拷贝出来按照规则重命名,并确保唯一性。

    以这样的大体思路,在上下班的路上不断思考整个框架,类组织结构,用户操作性(因为做mac的cocos2d开发好像只能在模拟器上开发,所以只有触屏消息,没有以前的单击,双击,左击,右击),以及可能存在的一些问题,如果动画模版太多,一个屏幕摆放不开,应该添加滚动功能,但cocos2d又没有几个UI控件,这也只能自己实现。

    前后换了两三次用户操作方式,添加了工作任务保存等更任务,在此过程中,也认识到cocos2d的内存托管的规则,mac一些api的使用(原来mac的api用起来很舒服)。在这个开发中,我发现自己使用很多宏,突然能体谅以前高手为了写一些代码,宏那么多,就是为了编写方便,美观代码,又不像调用函数那样会添加一次函数跳转。


    终于,完完整整耗时4天时间,工具开发到用户良好使用的的程度,并完成了A交给的任务。这可比我盯着屏幕量坐标,手写json文件,手动拷贝动画资源,重命名并保证唯一性更有意义。当A来到我身边,看我这个任务做的怎么样的时候,我正用着这个工具来完成任务,A看了良久,也帮我一起布局,最后说一句,”做的不错“。多么美妙的一句话,又鼓舞了我的不断前进的心。


    做完之后,自己还有点恋恋不舍,因为又是一个自己用心开发出来的工具,这个工具把我的上下班路上想到的所有功能都集成进去了(因为以前写小工具,有时为了避免麻烦,没有把各种功能都实现,但这个工具都实现的),下班的时候心里还是美滋滋,还吃了个德克士的手枪鸡腿犒劳自己。

相关文章
|
2月前
|
算法 程序员 开发工具
代码之禅:高效编程的艺术与实践
【2月更文挑战第22天】 在数字时代的浪潮中,编程已不仅仅是一种技术活,它更是一场思维的舞蹈,一种解决问题的艺术。本文将深入探讨如何通过持续学习、精通算法与数据结构、编写可读性强和模块化良好的代码,以及利用版本控制工具来提升编程效率和质量。我们将一起揭开那些隐藏在键盘敲击背后的智慧,探索那些能够使程序员如同艺术家一般在代码世界中自由创作的技巧和方法。
Unity 3D学习心得,程序员开发心得分享!
Unity开发之路 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心...
1709 0
|
开发者
《Cocos2D-X游戏开发技术精解》一导读
凭借Cocos2D-X强大丰富的功能、简单易用的特点,读者成为一个优秀的游戏开发者将是轻而易举的事情。同时,网上商店也为开发者提供了面向全球用户的开放市场。此时,正是读者尽显才华、影响世界的机会。
989 0