做者:cls分享站 html
目前已有教程: web
以前教程中,建立遊戲元素的時候,咱們發現默認狀況下box2d的剛體都是一個矩形,但不少時候咱們須要不規則的剛體。如一棵樹,崎嶇的路面等。這時候咱們須要自定義剛體的形狀,但本身寫代碼彷佛又有點麻煩,因而PhysicsEditor咱們能夠幫我很好的偷懶一番。 函數
PhysicsEditor是個很棒的工具,經過它的可視化編輯界面,點一點,拉一拉就能夠輕鬆建立任意的多邊形剛體模型,並將這個模型數據導出成咱們所需的格式,例如AS3類。PhysicsEditor支持Box2D、Cocos2d、Nape等多種2D物理引擎。 工具
只不過它也是個收費軟件,不過也有提供免費試用,試用的話對多邊形的數量有限制(10個),不過聽說有技術博客開發者能夠申請免費許可(http://www.codeandweb.com/request-free-license),不知有沒有申請成功的同志?或許我該去碰碰運氣吶,哈~ 動畫
好了,進入正題,你們能夠在這裏下載試用版,如下是軟件的界面: spa
你們注意到我在一些地方標記了數字,是爲了便於接下來的用法講解。這一招實際上是學拉登大叔的「用PhysicsEditor快速建立自定義Box2D剛體(二)」,其實操做差很少,並且相比之下他的講解會比我詳細多,你們能夠好好參考參考。而個人重點是想講解一下如何修改PhysicsEditor的CitrusEngine模板文件。 設計
之因此要修改模板文件是由於如今的PhysicsEditor仍是按舊版本的CitrusEngine發佈最後生成的文件,因此咱們須要對模板文件進行一些修改。操做以下 code
你們找到PhysicsEditor的安裝路徑,進入其bin\exporters\citrus-engine目錄下,打開citrusengine.as文件, orm
將Box2DAS.Collision.Shapes.b2PolygonShape替換成Box2D.Collision.Shapes.b2PolygonShape,將Box2DAS.Common.V2替換成Box2D.Common.Math.b2Vec2,將com.citrusengine.objects.PhysicsObject替換成citrus.objects.platformer.box2d.Crate, htm
再將文件中全部用到V2這個類的地方所有替換成b2Vec2,將PhysicsObject換成Crate,還要將var vertices:Vector.<V2> = new Vector.<V2>()改爲var vertices:Array =[];將vertices =new Vector.<V2>()改爲vertices = []。
這樣終於修改好了,是否是以爲挺折騰的~其實我本身也嘗試了很久才指導是這麼改的==
不過若是大家懶得改的話,能夠直接下載文末的項目源文件,我將修改好的文件也打包在裏面了(bin文件夾),直接替換就得了。
那麼準備工做結束,接下來研究一下如何用PhysicsEditor發佈CitrusEngine的.as文件吧
首先,你們能夠先點擊1處添加圖片,而後點擊2處讓PE自動幫忙捕獲圖片的邊緣,自動生成多邊形頂點信息。固然也能夠本身動手點2處旁邊的按鈕,添加多邊形或圓形組合成想要的效果。點擊2處後會出現以下圖所示的界面:
5處能夠設置頂點之間的距離,這個值越小,頂點間距越小,多邊形越接近圖片的形狀,同時消耗CPU也越多,因此沒必要過分要求多邊形的精度,大致形狀差很少就行。5處設置好後,PE會自動計算出頂點的個數,並顯示在6處。
設置好以後點擊ok回到主界面,接下來咱們看3處,3處能夠選擇你要發佈的平臺文件。咱們選擇「CitrusEngine actionscript」,而後點擊4處發佈成一個.as文件。默認將其命名爲CitrusPhysicsEditor,若是要用其餘名字的話,發佈以後要修改構造函數的名字,將其改爲你命名的名字就好了那麼這個.as在CitrusEngine中怎麼使用呢?
其實跟咱們添加其餘遊戲元素沒差異:
我們能夠預覽一下效果圖
=>原文及源碼下載