天天看點

實體引擎chipmunk

chipmunk本是一個獨立的開源項目,用純c編寫.cocos2d同時整合了chipmunk和box2d兩個實體引擎.

相比之下,chipmunk更輕量易用,但是相關的文檔很少.

box2d還沒開始學習,暫時不敢妄言.

chipmunk的官方位址:http://code.google.com/p/chipmunk-physics/

之是以在對cocos2d還一知半解的時候就開始學chipmunk,是因為公司最近給的項目,需要用到實體引擎.被人趕着學習也是件好事,因為俺的确是 個懶人.

[一些基本的概念]

space:這是一個虛拟出實體空間,所有剛體(body),形狀(shape),連接配接(joint)都在這個空間裡發生實體事件.

body:剛體.在實體上,剛體是被抽象為一個實體例子實體單元去看待的,但是它不同與真正的粒子,因為剛體可以有形狀(shape)并且可以旋轉.另 外,剛體上附帶着最基本的實體屬性:

shape:剛體的形狀.剛體間發生碰撞,是以剛體的形狀外延為碰撞臨界的.一個剛體可以附加多個shape形成複雜的剛體外形.同屬于一個剛體的形狀之 間不會發生碰撞.

joint:連接配接,兩個以上的剛體連接配接在一起,比如一條鎖鍊,是由多個剛體的鐵環組成的.具體joint的使用,暫時還沒深入研究.

[Demo HelloChipmunk]

利用cocos2d的項目模闆,可以友善的建立一個支援cocos2d和chipmunk的項目.

與HelloCocos2d類似的,初始項目還是建立了一個AppDelegate和一個CCLayer的實作(HelloChipmunkScene, 這個模闆命名我覺得有點問題,其實這個類是繼承自CCLayer的,可是卻以Scene冠名).

AppDelegate與上一個項目HelloCocos2d的完全一樣,不再做重複分析了.

直接看關鍵的HelloChipmunkScene.