歡迎轉載,請註明地址: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的代碼,你會發現,其實根本沒有什麼區別。你要考慮的問題已經不是如何?,而是如何有更好的效果。
好了,就這麼多。又到飯點了。