1. 程式人生 > >cocos2d-x遊戲開發 跑酷(九) 原始碼下載及小結

cocos2d-x遊戲開發 跑酷(九) 原始碼下載及小結

這個東西零零碎碎寫了一個禮拜吧。其實也沒多少東西在裡面。文章後附下載地址

因為我沒用過chipmunk,而且它是面向過程的東西,情感上又不太願意去研究,所以我用box2d來做了物理模擬。個人感覺box2d還是蠻好用的,它的作者很牛逼的哦。暴雪娛樂的首席軟體工程師,box2d是他業餘寫的。國外的攻城獅都這麼牛逼麼。

我感覺我的程式碼組織的還算比較清楚的。複雜點的地方,我都寫了一些簡要的註釋。其實我不認為一行程式碼一行註釋是一個好的風格。因為我覺得,如果你的程式碼需要大量的註釋別人才看的懂的話,只有兩種可能,一是你實在太牛逼,已經是非常人,一般人理解不了你的思想,所以要每行都加註釋;另一種可能就是程式碼實在太爛,不多加點註釋自己都看不懂。我傾向於,如果要建立一個類,看名字就大概知道這個類是用來幹嘛的,如果要寫一個函式,看名字也應該能知道用來幹嘛的。關於這方面,其實C++先天就不足,這是語言設計的問題,相比Objective-C,簡直弱爆了。有興趣的可以去看下O-C。但是我還是儘量讓程式碼看起來言簡意賅,看名知意,只能是儘量而已。

我十分討厭在程式碼裡看到突然冒出來的數字。你在看一個變數定義,結果它是由一個數字跟另一個變數運算來取值的,這時候是不是有點莫名其妙,這數字哪兒來的?為什麼要有一個這樣的數字在這裡。這時候如果有點註釋,就好了,不然挺鬱悶的。

在跑酷裡面的ObjectManager類裡面,新增金幣的地方有一個定義

float startX = coinOriginX - coinWidth / 2 * 11;

呵呵,後面那個11,說實話我真不知道是怎麼來的。如果是金幣間隙的個數,那麼應該是6,如果是一串金幣的長度,那麼應該是18。所以這裡比較迷惑。

我在給精靈設定tag的時候也不會莫名其妙的直接用setTag(1)這種方式,因為你要設tag,那麼一定是要用這個tag,在你用的時候你或許會getChildByTag(1),那麼請問如果你看到這個取tag的函式,你知道它取的是個什麼東西嗎。我的程式碼裡面設定tag都會給這個tag取個名字,用個列舉來列出所有要設定的tag,在用的時候你就知道這個tag取出來的是個什麼東西了。

我的程式碼已經上傳到資源了,只要一個積分哦。

一個比較好的除錯方式是,你先下載泰然的JS版工程,他那個連引擎都打包了,我是在那個工程下做的二次開發。你只需要把我的程式碼下載解壓,替換到Classes目錄下即可。

這段程式碼我會收錄到我的新書裡面,到時候歡迎大家購買指正。

如果你沒有積分,可以在本篇文章下留下你的郵箱,我定期來檢查傳送給你。

要泰然網程式碼的同學太多了,我打包放在了網盤,地址在下面。