文档章节

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

clschen
 clschen
发布于 2013/05/15 19:42
字数 1119
阅读 186
收藏 2

作者: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.<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中怎么使用呢?

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

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

咱们可以预览一下效果图

 



=>原文及源码下载

© 著作权归作者所有

clschen
粉丝 4
博文 21
码字总数 10662
作品 1
广州
程序员
私信 提问
CitrusEngine系列教程三:使用flash cs 设计关卡

教程出自 cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教程...

clschen
2013/05/07
0
0
CitrusEngine系列教程一:认识CitrusEngine

教程作者:cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教...

clschen
2013/05/03
0
0
CitrusEngine系列教程二:结合starling和Box2D开发游戏

教程出自 cls分享站 CitrusEngine系列教程一:认识CitrusEngine CitrusEngine系列教程二:结合starling和Box2D开发游戏 CitrusEngine系列教程三:使用flash cs 设计关卡 CitrusEngine系列教程...

clschen
2013/05/05
0
0
(翻译)介绍Box2D的Cocos2D 2.X教程:弹球

原文地址:http://www.raywenderlich.com/28602/intro-to-box2d-with-cocos2d-2-x-tutorial-bouncing-balls 译文更新:2013-04-27 更新内容: 将body统一译为刚体 将fixture统一译为夹具 更新...

长平狐
2013/12/26
327
0
【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法

上一节讲述了粒子的相关问题,当然啦,不示弱,今天继续将物理系统给大家进行简单的介绍和讲述; 首先先介绍,如何在cocos2d中加入box2d开发lib包,因为一般使用cocos2d引擎进行开发游戏时,...

junwong
2012/03/02
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 请务必让我分担他们的痛苦!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :分享石元丈晴的单曲《Why》: 《Why》- 石元丈晴 手机党少年们想听歌,请使劲儿戳(这里) @一代码哥 :当他妈狗屁的程序员,天天...

小小编辑
24分钟前
63
3
php 遇到 No input file specified的解决方法

(一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后面的1...

chenhongjiang
今天
7
0
MySQL 基础

一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到mysql -u账...

华山猛男
今天
6
0
简单的博客系统(四)Django请求HTML页面视图信息--基于函数的视图

1. 编写用于查询数据的功能函数 应用目录 下的 views.py 文件通常用于保存响应各种请求的函数或类 from django.shortcuts import renderfrom .models import BlogArticles# Create your ...

ZeroBit
今天
5
0
用脚本将本地照片库批量导入到Day One中

因为目前iCloud 空间已经不足,其中95%都是照片,之前入手了DayOne,且空间没有限制,订阅费一年也不少,再加上DayOne作为一款日记App 也比较有名,功能方面最大的就是地理视图与照片视图,尤...

在山的那边
昨天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部