上一節添加了tiles積木,但不能進行滑鼠操作。下面添加滑鼠相關的控制。
【添加滑鼠關節】
b2MouseJoint *mMouseJoint
【處理按鍵響應】
設定開啟觸屏之類的就不說了。在觸屏開始的時候要查詢相交的形狀,根據其夾具fixture獲得物體,然後建立它與地面間的滑鼠關節。
然後在滑鼠移動的時候更新滑鼠關節的目标位置,并在觸屏結束的時候删除滑鼠關節。
【實體查詢回調】
從b2QueryCallback派生一個查詢回調的類來存儲要處理的查詢結果:
【效果圖和代碼下載下傳】

【box2的基本元件的概念】
b2World世界:實體世界就是物體、形狀和限制互相作用的集合
b2Body物體
b2Fixture夾具:用于把形狀附加到物體上的關系
b2Shape形狀:物體的形狀,依附于五條的2d碰撞幾何結構,有摩擦力friction和恢複力restitution等材質性質
限制:消除物體自由度的實體連接配接。2d世界中,一個物體有x、y方向和旋轉角度3個自由度。
b2Joint關節:用于把兩個或多個物體固定到一起的限制。包括旋轉、棱柱和距離等。可限制一個關節的活動範圍,可通過關節驅動所連接配接物體的轉動。
box2d針對大小0.1~10機關長度的物體作了優化,是以定義一個轉換PTM_RATIO=32,表示像素/米,以便把物體尺寸在cocos2dx與box2d間轉換。
一個物體可附加多個夾具,每個夾具代表一個特定密度、形狀的部件,而物體的主要特征則表現為整個物體在空間的位置和速度資訊。
b2body的userData屬性允許存放一個任意類型的指針指向我們自定義的資料。