CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体

Stella981
• 阅读 557

作者:cls分享站

目前已有教程:

  1. CitrusEngine系列教程一:认识CitrusEngine

  2. CitrusEngine系列教程二:结合starling和Box2D开发游戏

  3. CitrusEngine系列教程三:使用flash cs 设计关卡

  4. CitrusEngine系列教程四:Citrus的2D动画和摄像头

  5. CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体

  6. CitrusEngine系列教程六:使用Tiled Map Editor创建地图

............................................................................

之前教程中,创建游戏元素的时候,我们发现默认情况下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. = new Vector.()改成var vertices:Array =[];将vertices =new Vector.()改成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中怎么使用呢?

其实跟我们添加其他游戏元素没差别:

  1. var pe:PhysicsEditorObjects = new PhysicsEditorObjects("Pe", {x:200, peObject:"muffin", view:"muffin.png", registration:"topLeft"});add(pe);

复制代码

咱们可以预览一下效果图

CitrusEngine系列教程五:使用PhysicsEditor创建box2d刚体 =>原文及源码下载

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Stella981 Stella981
3年前
CitrusEngine系列教程三:使用flash cs 设计关卡
教程出自cls分享站(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.chenlinsheng.com%2F)1.CitrusEngine系列教程一:认识CitrusEngine(https://www.oschina.net/action/GoToLink?url
Stella981 Stella981
3年前
CitrusEngine系列教程六:使用Tiled Map Editor创建地图
作者:cls分享站(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.chenlinsheng.com%2F)目前已有教程:1. CitrusEngine系列教程一:认识CitrusEngine(https://www.oschina.net/action/GoToL
Stella981 Stella981
3年前
CitrusEngine系列教程二:结合starling和Box2D开发游戏
教程出自cls分享站(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.chenlinsheng.com%2F)1.CitrusEngine系列教程一:认识CitrusEngine(https://www.oschina.net/action/GoToLink?url
Easter79 Easter79
3年前
Swift项目兼容Objective
!456.jpg(http://static.oschina.net/uploads/img/201509/13172704_1KcG.jpg"1433497731426906.jpg")本文是投稿文章,作者:一叶(博客(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2F00red
Stella981 Stella981
3年前
CitrusEngine系列教程四:Citrus的2D动画和摄像头
作者:cls分享站(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.chenlinsheng.com%2F)1.CitrusEngine系列教程一:认识CitrusEngine(https://www.oschina.net/action/GoToLink?urlht
Stella981 Stella981
3年前
CitrusEngine系列教程一:认识CitrusEngine
教程作者:cls分享站(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.chenlinsheng.com%2F)1.CitrusEngine系列教程一:认识CitrusEngine(https://www.oschina.net/action/GoToLink?url