做者: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中怎么使用呢?
其实跟咱们添加其余游戏元素没差异:
我们能够预览一下效果图
=>原文及源码下载