這個東西零零碎碎寫了一個礼拜吧。其實也沒多少東西在裡面。文章後附
部落格地址:http://blog.csdn.net/dawn_moon
因為我沒用過chipmunk,而且它是面向過程的東西,情感上又不太願意去研究,所以我用box2d來做了物理模擬。個人感覺box2d還是蠻好用的,它的作者很牛逼的哦。暴雪娛樂的首席軟體工程師,box2d是他業餘寫的。國外的攻城獅都這麼牛逼麼。
我感覺My Code組織的還算比較清楚的。複雜點的地方,我都寫了一些簡要的注釋。其實我不認為一行代碼一行注釋是一個好的風格。因為我覺得,如果你的代碼需要大量的注釋別人才看的懂的話,只有兩種可能,一是你實在太牛逼,已經是非常人,一般人理解不了你的思想,所以要每行都加註釋;另一種可能就是代碼實在太爛,不多加點注釋自己都看不懂。我傾向於,如果要建立一個類,看名字就大概知道這個類是用來幹嘛的,如果要寫一個函數,看名字也應該能知道用來幹嘛的。關於這方面,其實C++先天就不足,這是語言設計的問題,相比Objective-C,簡直弱爆了。有興趣的可以去看下O-C。但是我還是盡量讓代碼看起來言簡意賅,看名知意,只能是盡量而已。
我十分討厭在代碼裡看到突然冒出來的數字。你在看一個變數定義,結果它是由一個數字跟另一個變數運算來取值的,這時候是不是有點莫名其妙,這數字哪兒來的?為什麼要有一個這樣的數字在這裡。這時候如果有點注釋,就好了,不然挺鬱悶的。
在跑酷裡面的ObjectManager類裡面,添加金幣的地方有一個定義
float startX = coinOriginX - coinWidth / 2 * 11;
呵呵,後面那個11,說實話我真不知道是怎麼來的。如果是金幣間隙的個數,那麼應該是6,如果是一串金幣的長度,那麼應該是18。所以這裡比較迷惑。
我在給精靈設定tag的時候也不會莫名其妙的直接用setTag(1)這種方式,因為你要設tag,那麼一定是要用這個tag,在你用的時候你或許會getChildByTag(1),那麼請問如果你看到這個取tag的函數,你知道它取的是個什麼東西嗎。My Code裡面設定tag都會給這個tag取個名字,用個枚舉來列出所有要設定的tag,在用的時候你就知道這個tag取出來的是個什麼東西了。
My Code已經上傳到資源了,只要一個積分哦。
一個比較好的調試方式是,你先下載泰然的JS版工程,他那個連引擎都打包了,我是在那個工程下做的二次開發。你只需要把My Code下載解壓,替換到Classes目錄下即可。
這段代碼我會收錄到我的新書裡面,到時候歡迎大家購買指正。
如果你沒有積分,可以在本篇文章下留下你的郵箱,我定期來檢查發送給你。
代碼:http://download.csdn.net/detail/fylz1125/7124919