自豪-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月前
|
设计模式 算法 程序员
代码之美:探索编程艺术与实践
在数字化时代,编程已成为一种创造性的艺术。本文将深入探讨编程的美学原则、设计模式的应用以及高效编码的实践技巧,旨在为读者揭示如何通过技术和创新思维提升代码质量,实现技术与艺术的完美结合。
|
5月前
|
程序员 Linux C语言
程序员必知:如何用cocos2d
程序员必知:如何用cocos2d
28 2
|
23天前
|
安全 API Swift
探索iOS开发中的Swift语言之美
【10月更文挑战第23天】在数字时代的浪潮中,iOS开发如同一艘航船,而Swift语言则是推动这艘船前进的风帆。本文将带你领略Swift的独特魅力,从语法到设计哲学,再到实际应用案例,我们将一步步深入这个现代编程语言的世界。你将发现,Swift不仅仅是一种编程语言,它是苹果生态系统中的一个创新工具,它让iOS开发变得更加高效、安全和有趣。让我们一起启航,探索Swift的奥秘,感受编程的乐趣。
|
3月前
|
程序员 Python
探索代码之美:我的编程感悟之旅
【8月更文挑战第31天】编程,一门艺术与科学的结合体。本文将带你走进编程世界,分享个人在代码编写过程中的心得体会。从最初的迷茫到逐步掌握,再到深入理解,每一步都充满挑战与惊喜。让我们一起领略代码的魅力,感受编程带来的成就感与乐趣。
|
3月前
|
图形学
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
Unity精华☀️点乘、叉乘终极教程:用《小小梦魇》讲解这个面试题~
|
3月前
|
搜索推荐 程序员
代码之旅:我的编程实践与感悟
在这个数字时代,编程已经成为一种重要的技能。它不仅仅是计算机科学的一个分支,更是一种解决问题的工具。从最初的迷茫到现在的熟练,我在编程的道路上经历了许多挑战和困惑。这篇文章将分享我的编程实践经历,包括我如何从一个初学者成长为一名有经验的程序员,以及在这个过程中我所学到的一些重要经验和感悟。
|
6月前
|
设计模式 开发者
探索代码之美:我的编程艺术之旅
【5月更文挑战第19天】 在数字的海洋中,我是一位潜水者,每一次键盘的敲击都是对未知世界的探索。本文记录了我在编程实践中的一些感悟和经验,从最初的困惑到最后的豁然开朗,我逐渐理解了编程不仅仅是一种技能,更是一种艺术。我将分享如何通过不断学习和实践,将代码转化为优雅的解决方案,以及在这个过程中所经历的挑战和收获。
|
6月前
|
设计模式 算法 测试技术
探索代码之美:我的编程思考之旅
【5月更文挑战第8天】 在数字化的浪潮中,编程已成为一种艺术,一种用逻辑与创造力编织的语言。本文将分享我在编程实践中的一些技术感悟,从最初的困惑到逐渐的深入理解,再到最后的灵活应用,我经历了一段充满挑战与收获的旅程。文章不仅探讨了编程技巧的提升,还涉及了对软件设计原则的认识,以及如何通过不断学习来适应快速变化的技术环境。
|
6月前
|
程序员
代码与禅意:编程中的悟性之旅
【5月更文挑战第31天】在数字世界的繁花似锦中,我们常常忽略了编码背后蕴含的哲学。本文将探讨编程不仅仅是一门技术,更是一种艺术和内省的过程。从禅宗的角度出发,我们将一窥那些静谧的代码行间所折射出的深邃智慧,以及它如何影响程序员的思考方式和解决问题的策略。
|
6月前
|
设计模式 算法 程序员
代码之禅:技术感悟与编程艺术
【5月更文挑战第23天】 在数字世界的迷宫中,编程不仅仅是敲击键盘的行为,它是一种思考的艺术,一种创造的表达。本文将探讨编程背后的哲学、实践以及个人成长的故事,揭示编程不只是逻辑和算法的堆砌,而是一种对问题深刻理解后的创造性解答。我们将通过一系列技术感悟,探讨如何提升编程技能,同时保持个人的创新精神和技术的敏锐度。