CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体
来源:互联网 发布:数据的离散程度用描述 编辑:程序博客网 时间:2024/05/01 14:16
作者:cls分享站
之前教程中,创建游戏元素的时候,我们发现默认情况下box2d的刚体都是一个矩形,但很多时候我们需要不规则的刚体。如一棵树,崎岖的路面等。这时候我们需要自定义刚体的形状,但自己写代码似乎又有点麻烦,于是PhysicsEditor我们可以帮我很好的偷懒一番。
PhysicsEditor是个很棒的工具,通过它的可视化编辑界面,点一点,拉一拉就可以轻松创建任意的多边形刚体模型,并将这个模型数据导出成我们所需的格式,例如AS3类。PhysicsEditor支持Box2D、Cocos2d、Nape等多种2D物理引擎。
只不过它也是个收费软件,不过也有提供免费试用,试用的话对多边形的数量有限制(10个),不过据说有技术博客开发者可以申请免费许可(http://www.codeandweb.com/request-free-license),不知有没有申请成功的同志?或许我该去碰碰运气呐,哈~
好了,进入正题,大家可以在这里下载试用版,以下是软件的界面:
大家注意到我在一些地方标记了数字,是为了便于接下来的用法讲解。这一招其实是学拉登大叔的“用PhysicsEditor快速创建自定义Box2D刚体(二)”,其实操作差不多,而且相比之下他的讲解会比我详细多,大家可以好好参考参考。而我的重点是想讲解一下如何修改PhysicsEditor的CitrusEngine模板文件。
之所以要修改模板文件是因为现在的PhysicsEditor还是按旧版本的CitrusEngine发布最后生成的文件,所以我们需要对模板文件进行一些修改。操作如下
大家找到PhysicsEditor的安装路径,进入其bin\exporters\citrus-engine目录下,打开citrusengine.as文件,
将Box2DAS.Collision.Shapes.b2PolygonShape替换成Box2D.Collision.Shapes.b2PolygonShape,将Box2DAS.Common.V2替换成Box2D.Common.Math.b2Vec2,将com.citrusengine.objects.PhysicsObject替换成citrus.objects.platformer.box2d.Crate,
再将文件中所有用到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中怎么使用呢?
其实跟我们添加其他游戏元素没差别:
- var pe:PhysicsEditorObjects = new PhysicsEditorObjects("Pe", {x:200, peObject:"muffin", view:"muffin.png", registration:"topLeft"});add(pe);
咱们可以预览一下效果图
=>原文及源码下载
- CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体
- 用PhysicsEditor快速创建自定义Box2D刚体
- CitrusEngine系列教程六:使用Tiled Map Editor创建地图
- 手把手教你使用PhysicsEditor来辅助制作Box2D刚体
- CitrusEngine系列教程二:结合starling和Box2D开发游戏
- box2d系列:如何使用 PhysicsEditor 加快 cocos2dx-Box2D 开发
- 使用PhysicsEditor为物理引擎创建刚体形状
- CitrusEngine系列教程一:认识CitrusEngine
- Box2D创建多边形刚体
- CitrusEngine系列教程三:使用flash cs 设计关卡
- [Box2D]五.和刚体交互
- Box2D创建圆角刚体
- 【box2d-游戏开发】 box2d 创建刚体
- 如何使用 PhysicsEditor 加快 cocos2dx-Box2D 开发
- 如何使用 PhysicsEditor 加快 cocos2dx-Box2D 开发
- 如何使用 PhysicsEditor 加快 cocos2dx-Box2D 开发
- Box2D教程3-刚体绑定外观
- Cocos2d-x_Box2D刚体使用PhysicsEditor工具生成形状
- socket client传文件到server,server端接收成功后给客户端反馈一个信息
- 变换变量 位运算
- 大数据?别唬人了!我们真的需要盲目烧钱追求大数据吗?
- wireshark ERROR:capture_dlg.c:408:capture_filter_check_syntax_cb: code should not be reached
- 二进制的串转换为整数
- CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体
- 免费才是王道:盘点开发者须知的25个免费数据可视化工具
- LayoutParams的简单的叙述
- 公倍数
- OpenCV轮廓检测
- 开此博客的目的
- 揭秘IT人才特点:中美印日四国程序员比较
- 最优二叉树算法
- 解决IE8不兼容问题