官术网_书友最值得收藏!

10.5 Box2d的相關工具

Box2d的編輯器不少,但功能大多比較簡單,主要有PhysicsEditor、BoxCAD、Physics Body Editor、Vertex Helper等。編輯器主要可以用于編輯物理形狀,這樣就不需要在代碼中使用大量的坐標編碼來描述形狀給Box2d,而是由編輯器來描述形狀,我們只需要調用簡單的接口,就可以把復雜的物理形狀創建出來,大大減少了代碼中的硬編碼,同時也有利于后期物理形狀的調整。

10.5.1 PhysicsEditor介紹

PhysicsEditor與TexturePacker是同一個公司開發的,支持Windows和Mac,可以用來簡單地編輯一些形狀,然后導出Plist,其工具界面如圖10-4所示,官方提供了一個簡單的解析類供用戶使用,雖然是收費軟件,但仍可以免費使用,只不過有兩個限制,即導出的Plist不能超過10個shape;每次導出要等5秒才能導出。這個工具用來編輯物體的物理形狀,還是很不錯的。在導出的時候,需要在導出界面的右上角選擇導出格式,注意選擇Box2D generic Plist選項導出。

圖10-4 PhysicsEditor編輯器

使用PhysicsEditor進行編輯,一般的步驟如下。

(1)先把要編輯的物理對象的圖片添加到PhysicsEditor中,如圖10-5所示。

圖10-5 添加圖片

(2)為物理形狀起一個名字,在所有的物理形狀中,這個名字必須是唯一的,如圖10-6所示。

圖10-6 為形狀起名字

(3)單擊上方的形狀按鈕,添加形狀到物理對象中,可以選擇圓形、三角形、描點,然后調整添加的形狀,最右邊的兩個按鈕是對當前選擇的圖形進行鏡像翻轉,方便編輯一些對稱形狀,如圖10-7所示。

圖10-7 工具欄

(4)選擇摳圖工具可以快速地勾勒出復雜的形狀,其選項中,Tolerance(容差)值越高,頂點就越少,Alpha threshold(透明極限)值越高,摳圖的區域(紅色區域)就越精細。Trace mode(追蹤模式)有Straight(直線模式)和Natural(自然模式)兩個選項可以選擇,直線模式的頂點會更少一些,自然模式會更精細一些。Frame mode(幀模式)適用于需要描述多個物理形狀之間的相交或者集合,如圖10-8所示。

圖10-8 摳圖工具

(5)選擇導出模式為Box2D generic (PLIST)尤為重要,因為這是要為Cocos2d-x、Box2d導出的形狀文件,選擇不同的導出模式會有不同的附加選項可供選擇,如圖10-9所示。

圖10-9 導出格式

(6)還需要填寫錨點的值,一般都是將錨點設置為0.5,0.5,所以這里將Relative選項的值都填為0.5,0.5,然后為密度、彈性和摩擦力選項賦值,彈性和摩擦力的取值范圍是0~1,而密度的單位應該是kg/m3,如圖10-10所示。

圖10-10 屬性設置

(7)在屬性面板的最下方還有一個多選菜單,左邊的Cat.表示你自己的碰撞屬性,右邊的Mask表示你能與哪些物體碰撞,例如,這里你的碰撞屬性是bit_0,則可以與所有對象碰撞,假設Mask的bit_0沒有選中,那么這個物理對象不會和另外一個相同類型的物理對象發生碰撞,但可以和其他的物理對象發生碰撞。選中Cat.表示這個物理對象是什么,而選中Mask表示你能和什么物理對象發生碰撞(所有默認的物理對象的Cat.都是bit_0),如圖10-11所示。

圖10-11 碰撞掩碼設置

(8)最后,單擊上方的Publish或Publish As按鈕,就可以導出Plist文件了,Plist文件可以直接在Cocos2d-x中使用。在PhysicsEditor的安裝目錄下,Documentation目錄中有如何使用PhysicsEditor的相關文檔,Examples目錄下有多種引擎使用PhysicsEditor的示例,Loaders目錄下有多種引擎加載PhysicsEditor導出的Plist文件的加載器,Cocos2d-x只需要包含GB2ShapeCache-x.h和GB2ShapeCache-x.cpp文件即可。

10.5.2 BoxCAD介紹

BoxCAD是一個在線編輯Box2d的網站,可以編輯各種形狀和關節,然后播放演示,Dump Code按鈕可以自動生成所編輯內容的AS代碼,并下載下來,Box2d使用的各種語言代碼都是比較相似的,可以簡單修改一下,放到Cocos2d-x中(TestBed框架),如圖10-12所示。

圖10-12 BoxCAD界面

10.5.3 Physics Body Editor介紹

Physics Body Editor與PhysicsEditor相似,都是用Java實現的一個開源的編輯器,Java的東西都是跨平臺的,但其只能導出JSON格式,雖然其界面看上去還不錯,但目前還沒有找到Cocos2d-x調用它的代碼,如圖10-13所示。

圖10-13 Physics Body Editor界面

10.5.4 Vertex Helper介紹

Vertex Helper也是一個編輯形狀的工具,但該工具是編輯完形狀直接生成代碼,生成的代碼可以直接放到2dx代碼中(BoxCAD是需要修改一下的),相對于BoxCAD, Vertex Helper并不支持編輯關節,也不支持物理模擬,并且只能在Mac下運行。

使用的時候需要先將參考圖片拖進工具中,然后選擇編輯模式,旋轉Type和Style選項,接下來在圖片上挨個單擊,右下角的文本框中就會自動生成相對應的初始化代碼了,如圖10-14所示。

圖10-14 Vertex Helper界面

除此之外還有Mekanimo、PhysicsBench等工具,這里就不一一介紹了。

主站蜘蛛池模板: 兴山县| 东丽区| 石渠县| 开原市| 葫芦岛市| 达拉特旗| 乳源| 桃源县| 乾安县| 肃宁县| 南木林县| 丁青县| 洛宁县| 孟村| 衡东县| 临猗县| 惠水县| 逊克县| 曲麻莱县| 南郑县| 鄂尔多斯市| 红安县| 综艺| 普安县| 彰武县| 永川市| 彰武县| 武宁县| 美姑县| 乐业县| 苍溪县| 读书| 兴化市| 米易县| 淮阳县| 荣昌县| 镇宁| 壶关县| 通河县| 临江市| 禄劝|