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.