学cocos2d-x一段时间了,感觉没什么条理。没有项目做,学起来感觉效果不好。看了源码的一些代码,研究了test的代码,也找了一些文章来看,但总感觉还是差点什么。
个人认为学东西还是做做项目比较有感觉。比如cocos2d-x,看的再多,研究的再多,老是写写demo不动手做项目,心里总是不踏实。而且很多问题,不做项目的话就没有具体问题,没有具体的解决方法,就不会对问题理解深刻。cocos2d-x这个东西本身是c++的,尽管开发团队为了降低学习难度和入门门槛做了很多工作,但是如果c++功底不够,我觉得也学不到什么东西,充其量学会了使用一个工具而已。知道怎么做,不知道为什么这样做。这样如果碰到本质问题,比如引擎自己的问题,就没办法解了。我学习一个东西,有个不好的习惯,就是喜欢追根索源。碰到不懂的东西喜欢找到问题的源头,为什么要这样?不这样行不行?作者想干嘛?意图是什么?嘿嘿,这样有时候很痛苦,特别是在新东西还不熟,经验不足的时候,往往一个问题能牵扯出一堆问题来,而且很多问题自己还不懂,这就需要学很多相关东西了。这个过程很耗时间。比如前段时间看cocos2d-x的动作系统Actions。看demo都是那么在用,创建一个Action,创建动作执行速率,比如由快至慢CCEaseSineOut,执行一个动作等。如果看test的demo,然后学会它的用法也无可厚非,但我总觉得心里好像少点什么。老有一些疑问,一个动作是如何驱动的?动作执行的速率又是如何起作用的?执行过程是怎么样的?这些东西我一无所知,感觉使用起来就是完全的记API了。后来看到Bugs Bunny的博文,很震惊(cocos2dx动作浅析)。他通过代码分析,讲解了整个动作系统的驱动过程,而且用GeoGebra作图,分析了CCEasexxx的数学模型,并且指出了其中的几处数学公式的bug。我发现后续版本也修正了这些bug,而且正是如文中所述那样。作者深厚的数学功底和其精辟的讲解令我十分佩服。非常感谢作者的无私奉献。看了他的博文,我对cocos2d-x的动作系统有了清晰的认识。同时我也很感慨,一个优秀的程序员,数学是何等重要啊。推荐大家去看一看。
关于语言的学习。我觉得,c/c++还是值得学习的。虽然这个比较难,但是自有其价值所在。谁学谁知道,嘿嘿?
某一天,发现了cocos2d-html5的战神传说,地址。玩了一会,还很带感,嘿嘿。感谢开发组提供如此好玩的东西,希望再接再厉。
代码下下来看了一下,感觉还是比较好懂的。决定把这个用cocos2d-x重写一下,通过重写这个小游戏来学习cocos2d-x,感觉也不错啊。后续会写一些重写这个游戏的学习过程。
开发环境:mac+xcode,cocos2d-x-2.1.0beta版,webstorm(查看js代码用)。