欢迎转载,请注明地址:http://blog.csdn.net/fylz1125/article/details/8558956
项目地址:https://github.com/fylz1125/MoonWarriors
这个项目本来就是我学习cocos2d-x的一个项目,一开始就准备开源的。
只是因为其中有些问题没有解决,现在还会偶尔崩溃再加上最近找工作比较忙,所以没有弄。
另外,谈谈本人的学习经历:
对于语言,我是各种语言都懂,Java/C/C++/Objective-C/js/lua/Ruby等。我一开始学习的时候也是没有头绪,因为刚进入这个行业,有很多行业知识和专业术语不懂。其中也有研究引擎源码和Demo,但是都没有什么目的性,效果很差。
在我对C++的感觉更加熟悉后,我开始找一些项目来试着做。不得不说,这是一个好的方法。我看到JS版的很多游戏,还有cocos2d的很多开源小项目。因为它们都比较小,好懂。但是麻雀虽小,五脏俱全,很多游戏引擎的特性你都能在其中找到。我对照这些代码,然后试着用C++来重写。这其中会遇到很多困难,虽然引擎的各种版本在命名和结构上都没有太多差别,但不同语言的实现还是有一些不同的地方。这需要你有比较好的语言功底,知道不同实现的差异。
如果语言本身对你来说没有什么障碍的话,那么你会觉得用JS写的游戏非常清晰,O-c的代码也非常漂亮。如果还有一些注释的话,你搞清楚整个游戏的结构和逻辑也不是什么难事。
这个时候你就可以开始用C++来构思了,怎么样来重写它。
但我要告诉你,用C++来重写其他语言的游戏,其实不是最终目的。这只是我学习引擎的一个手段。如果你对这个引擎已经十分精通,那么也没有必要这么做了。这个时候,我觉得学习JS,然后用JS来做游戏会是一个更好的方法,因为它做起来更快。
好了,在你重写游戏的时候,你要试着去理解这些代码。比如同一个功能,用C++的实现是什么样子的。你要去追根索源,看引擎的源码。2.1.0的引擎已经有很多注释,网上也有很多博客,所以花点时间研究引擎本身,是值得的。至于某个API怎么用,这类问题反而不是那么重要。
在你写完一两个项目之后,你或许已经对引擎本身非常熟悉了。这个时候就完成了新手的入门之路了,后续就需要你不断的努力和实践。这个时候再看js或cocos2d的代码,你会发现,其实根本没有什么区别。你要考虑的问题已经不是如何实现,而是如何有更好的效果。
好了,就这么多。又到饭点了。