如何看源码画思维导图_如何看懂思维导图

hacker|
149

文章目录:

如何学习一种开发框架

我接触的许多程序员中,绝大多数都是知其然不知其所以然,做了AS好几年的,甚至连AVM是什么都不知道的太多了。许多程序员把快速开发出成品作为是工作的唯一目标,认为研究底层知识和周边技术是浪费时间。很多东西他们不是不能知道,而是不想知道。

更有甚者,学会了 gotoAndPlay 就敢说熟悉 Flash,会敲 ls 就敢说精通Linux。前几天有朋友发给我他膜拜了一日的逆天简历,上面洋洋洒洒写着汇编、C/C++、Linux网络编程、JAVA EE、Perl、Bash、Python、Windows驱动开发、单片机开发、HTML、CSS3、JavaScript、PHP、cocos2d-x、iOS开发、安卓开发……而且所有的项目的级别都是 精通!

我看完简历和朋友说:这位前后端桌面嵌入式系统驱动网页手机开发通吃的全栈神人10年里跳槽8次,从没在一个公司干满过2年,你敢用么?

======上面废话,不看也罢。

刚巧我也是从AS3转到了cocos2d-x,说说我的经验吧。

一、cocos2d-x 部分

1.1 技术选型

从第三个手游开始,我实在被Adobe的ANE和国内的小平台折腾得没了脾气,决定转到cocos2d-x。在选择哪种语言绑定的时候纠结了很久,最后力排众议选了 lua:Cocos2dx+lua合适还是Cocos2dx+js合适? cocos2d-x 2.x 的lua绑定做得并不好,于是我选择了 quick-cocos2d-x (后来,quick被触控收购)。

1.2 学习 C++

C++ Primer 中文版(第 5 版) (豆瓣) 是不错的入门书籍,建议看第五版,我写过一篇 C++Primer 第4版和第5版比较 。学习期间建议画一些思维导图帮助理解和整理思路。例如这个(不完整):

1.3 学习DEMO和熟悉开发平台

编译 cocos2d-x 自带的 TestCPP 项目,全部跑一遍。熟悉 cocos2d-x API 的用法。记得用doxygen 生成文档,建议每个API的功能都浏览一遍。

有的同学可能更喜欢直接看源码,那当然更好。不过文档有一个好处就是能更直观地显示继承关系。

在学习DEMO的过程中,你必须熟悉自己开发平台的IDE,例如Windows上必须熟悉 Visual Studio,而OS X上必须熟悉xcode,Linux平台上就熟悉Eclipse+CDT吧。

注意,quick-cocos2d-x 是不支持Linux开发平台的。

2014-05-17更新:quick已经使用QT重写了player部分,但依然不支持Liunx平台。

1.4 了解引擎的文件夹结构

基于 cocos2d-x 源码生成的文档并不怎么详细,许多功能必须看源码。但这个阶段,我不建议纠结源码太深,倒是可以纠结一下 cocos2d-x 的文件夹结构,看看各个类放在什么地方,找一找常见的哪些宏和常量以及枚举定义在什么地方,这花不了多少时间,但能让你对cocos2d-x有更深刻的了解,同时给你很强的成就感。这种成就感冲淡了你面对大量源码时候的无力感,让你能够继续前行。

下面是我的分析:

1.5 重复上面的第3步:再次学习DEMO

这时候看DEMO可能会轻松不少,但是你会有更多的问题去纠结。例如多分辨率支持?例如坐标系统?例如绘图功能?例如层级管理系统?例如事件传递系统?等等等等……这时候可以去Google(注意不要用百毒和其他搜索引擎)找文档看了。我推荐一些我看过的不错的文档和博客:

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版) 》 第一、二、三部分。第四部分可暂时不读。

1.2 熟悉 quick-cocos2d-x 的文件夹结构

相信有了上面 cocos2d-x 的基础,这个应该不难理解。

1.3 跑完 quick-cocos2d-x 自带的所有sample

在这期间,熟悉 framework 中的所有封装。可以参考 quick网站 和 quick wiki 。

1.4 学习导出API给Lua使用

导出 C/C++ API 给 Lua 使用

三、学习 OpenGL ES

熟悉Lua部分之后,作为一个有志于成为程序员的码农,依然要回到C/C++来,这里才是 cocos2d-x 的本质。

cocos2d-x 使用 OpenGL ES 进行渲染的,如果要对 cocos2d-x 的渲染层进行任何形式的扩展,你完全避不开 OpenGL ES。

既然逃不开,那就对TA说,请张开双腿,我要上。

3.1 阅读 OpenGL ES 2.0 Programming Guide

下面是这本书的官网,目前已经出了 OpenGL ES 3.0 版本,cocos2d-x 使用的是2.0。

这本书写得浅显易懂,非常适合新手。有位网友花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的技术人员),你要能忍受国内小平台糟糕的文档、代码规范和逆天的编程方法。

终、没有终点

上面说的并不完整,应该遗漏了不少东西,但我只能说这么多了。因为我的经验也止于此。

祝你成功!

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦

如何看懂别人画的iMindMap思维导图?

那如何阅读iMindMap思维导图呢?

一套具体的方法——流程五步:

1,了解主题——从中心开始读取中心主题;还记得我们三步成图里的第一步吗?是的,从导图的目的开始了解别人的导图!

2,整体掌控——从右上角开始,沿顺时针方向阅读,同时寻找主分支之间的内在联系。

这一步提到两个关键点,一是读图的顺序;二是按照这种顺序发现各主分支之间的逻辑关系。

3,层层深入——先父后子,先一般再具体,从内而外

写到这里,我深深的体会到思维导图的魅力乃至魔力之所在。你呢?

4,发现联系——理解不同分支之间的连线所代表的含义

5,补充修订——看懂别人的,思考自己的。

从第一步的目的开始,到中间第二,三,四步对内在关系的探究,在到第五步,读懂了别人的,明确自己的需求,思考自己的。一套思维流程,一种学习方法,分享给大家!

特别补充,或许有伙伴会有如下疑惑:

问:为什么从右上角开始读图,并且按照顺时针的方式呢?

答:一是我们的思维导图内在需要有良好的逻辑,否则如何看懂别人的图,以及如何让别人看懂我们的图呢!所以,一幅iMindMap()思维导图,你若看不明白,不一定是思维导图很复杂,也不一定是你功力不够呢;二是,我使用过五款思维导图软件,咳咳,导图软件在制作导图时的分支架构就是这么行走的。不信,你去试试...额,我从简书里看到的,觉得不错。

哪种JS/CSS框架可以画出如Xmind这样的思维导图

百度脑图就是个js实现的导图,不过web的肯定没Xmind里面强大,看百度脑图源码。

这个需要你自己编写的,应该没有很完整的模仿出Xmin的现成框架

xmind

win版: ;uid=1557

mac版: ;uid=1557

什么是思维导图?怎么画

其实画思维导图很简单的,用专业的思维导图工具就可以了,比如MindMaster这种,这款软件可以免费使用,不仅可以画图,还可以插入图片、附件、关系、外框、概要、图标、剪贴画等等,软件用起来也很简单,小白、新手都可以用,软件支持的格式也很多,word、ppt、pdf、图片、mindmanager、html都支持。如果你想把画好的思维导图分享给别人看,只要通过软件自带的云就可以很方便的分享到微信、微博、QQ、空间等等。

xmind思维导图软件作用是什么,新手怎使用怎操作,和怎制作一些内容知识

思维导图软件作用都是一样的,无非是梳理逻辑、整理知识、制作计划等。做思维导图我之前也用的xmind,不过现在用的MindMaster,软件操作都差不多的,就用MindMaster举例子吧~

新手操作:

1、新建:双击运行MindMaster软件,按步骤依次点击,创建新的思维导图。

2、编辑:使用文本编辑工具,可以输入文字,可以设置字体、字号以及颜色等。

还可以使用一些基础的功能,比如关系线、标注、外框和概要等。

3、导出:如果想要导出为图片,依次点击“导出和发送”—“图片”—“图片格式”,选择合适的格式进行导出。这样即可得到完整的思维导图作品。

上述是思维导图教程,也是初学者必须掌握的技能。

5条大神的评论

  • avatar
    访客 2022-07-01 下午 05:01:45

    s2d 的,所以,不要介意,可以先花半天时间熟悉 OC 的语法,能看懂即可。暂时不要买中文书。我曾经花3天时间看完了 《Cocos2D-X游戏开发技术精解》 和 《cocos2d-

  • avatar
    访客 2022-07-01 上午 10:25:39

    quick-cocos2d-x (后来,quick被触控收购)。1.2 学习 C++C++ Primer 中文版(第 5 版) (豆瓣) 是不错的入门书籍,建议看

  • avatar
    访客 2022-07-01 下午 12:30:38

    再决定是否使用她们。你已经有了AS3的基础,这样许多前端的概念和经验已经很丰富了。这些经验在cocos2d-x中同样适用。但是要注意的是,cocos2d-x不是AS3,不要试图用AS3的方法去使用cocos2d-x。有位码农在从C#转到AS3的

  • avatar
    访客 2022-07-01 下午 04:00:34

    枚举定义在什么地方,这花不了多少时间,但能让你对cocos2d-x有更深刻的了解,同时给你很强的成就感。这种成就感冲淡了你面对大量源码时候的无力感,让你能够继续前行。下面是我的分析:1.5 重复上面的第3步:再次学习DEMO这时候看DEMO可能会轻松不少,但是你会有更多的问题去纠结。例如多分辨

  • avatar
    访客 2022-07-01 上午 09:28:36

    时,为了解决一些cocos2d-x没有提供的功能,你必须去学习相关的知识。例如这个:在 cocos2d-x 中使用 libcurl 实现上传文件功能(附quick-cocos2d-x封装)。不过你现在已经有了基础,学习这些不是难事。在有时间的时候,可认真读一下上面提到的《Lua程序设计

发表评论