LDEasyBox2D使用说明

作者: ladeng6666 分类: Box2D 发布时间: 2012-10-20 21:05 阅读: 6,953

首先像关注我博客的兄弟们道歉,将近一个月没有更新教程了,今天我们继续。

看过我教程的同学都知道,我的教程里经常会用到LDEasyBox2D,也有人说,这对新手来说,理解起来有些困难。

其实LDEasyBox2D一点都不难,只不过是将我之前讲过的创建刚体的方法集成到了一个静态类中而已,今天我们就仔细看看LDEasyBox2D的内容。

属性

  • mouseJoint:当使用startDragBody()方法时,自动实例化这个鼠标关节,不需要特意创建
  • stage:当需要访问舞台的鼠标坐标时,会用到stage属性。需要在使用时,预先设置好这个属性
  • pixelPerMeter:每米转换成多少像素,默认为30

createWorld

功能:创建并返回一个重力为10牛的Box2D世界。

相关教程:认识box2d世界

参数说明:N/A

代码:

updateWorld

功能:更新Box2D世界。世界里刚体的useData也会同步更新;用startDragBody创建的鼠标关节也会自动更新。

相关教程:认识box2d世界让刚体听我的——鼠标拖动Box2D刚体刚体的上衣——b2BodyDef.userData

参数说明:

  • world:承载所有刚体的Box2D世界

代码:

 

createDebug

功能:创建Box2D Debug对象,调试Box2D应用。

相关教程:掉落的苹果——b2Body刚体

参数说明:

  • world:承载所有刚体的Box2D世界
  • 返回值:用来绘制Box2D调试图的sprite对象

代码:

 

createBox

功能:创建并返回一个矩形的b2Body刚体对象。

相关教程:掉落的苹果——b2Body刚体刚体的上衣——b2BodyDef.userData

参数说明:

  • world:承载所有刚体和关节的世界
  • posX:刚体的x坐标,以像素为单位
  • posY:刚体的y坐标,以像素为单位
  • boxWidth:刚体的宽度,以像素为单位
  • boxHeight:刚体的高度,以像素为单位
  • isStatic:刚体是否静止不动,默认为false
  • userData:刚体的外观,默认为null
  • 返回值:b2Body,创建好的矩形刚体

代码:

 

createCircle

功能:创建并返回一个圆形敢提,同样所有涉及到坐标的参数都是以像素为单位。

相关教程:创建圆形刚体刚体的上衣——b2BodyDef.userData

参数说明:

  • world:承载所有刚体的Box2D世界
  • posX:刚体的x坐标,以像素为单位
  • posY:刚体的y坐标,以像素为单位
  • radius:刚体的半径,以像素为单位
  • isStatic:刚体是否为静止对象,默认为false
  • userData:刚体的外观,默认为null
  • 返回值:返回一个圆形刚体

代码:

 

createPolygon

功能:根据一组顶点数据,创建多边形刚体,可以是顺时针绘制,也可以逆时针绘制,但不能出现交叉。

相关教程:Box2D多边形刚体贴图运行时创建多边形刚体

参数说明:

  • world:Box2D世界
  • vertices:顶点数组,顶点之间不能有交叉
  • isStatic:是否为静止的刚体
  • fillData:刚体的填充纹理,一个BitmapData对象,请确保整个BitmapData的尺寸大于舞台的尺寸
  • stage:添加userData的舞台,若不指定该属性,将无法看到刚体的外观
  • 返回值:返回一个多边形刚体

代码:

 

createWrapWall

功能:在Box2D世界中创建围绕canvas四周的静态墙体

相关教程:创建静止不动的刚体

参数说明:

  • world:承载所有刚体的Box2D世界
  • canvas:要用静态墙体包围的舞台

代码:

 

getBodyAtMouse

功能:获取Box2D世界中鼠标下的刚体。

相关教程:让刚体听我的——鼠标拖动Box2D刚体

参数说明:

  • world:承载所有刚体和关节的Box2D世界
  • 返回值:返回鼠标位置的刚体

代码:

 

startDragBody

功能:用鼠标关节拖动刚体。

相关教程:让刚体听我的——鼠标拖动Box2D刚体

参数说明:

  • world:承载所有刚体和关节的Box2D世界
  • body:要拖动的刚体
  • maxForce:鼠标关节允许的最大作用力,默认为1000

代码:

startDragBody

功能:停止拖动world中的刚体。

相关教程:让刚体听我的——鼠标拖动Box2D刚体

参数说明:

  • world:承载所有刚体和关节的Box2D世界

代码:

下载地址

注意,使用这个类之前,要先确保你已经准备好了Box2D 2.1a类库,然后将LDEasyBox2D静态来与Box2D类库放到同一个目录下,否则在编译时会提示找不到类文件。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

17条评论
  • vpen

    2012 年 10 月 22 日 下午 7:58

    谢谢拉登叔~这个类文件给我的box2D学习带来了很大的方便。只是在做游戏的时候遇到一个问题,比如我继承了一个碰撞监听的类,当我设定两个特定刚体碰撞时,摧毁刚体,但是发现摧毁刚体的语句没有任何效果,前面移除userdata的几句代码也能执行,这是为什么呢?box2D摧毁刚体有什么必要条件呢?

    1. ladeng6666

      2012 年 10 月 22 日 下午 9:04

      谢谢你的关注,你的问题我不是很理解,你可以把源文件发到我的邮箱里吗?这样我可以更好的明白你的问题。我的邮箱是:ladeng6666@163.com

  • vpen

    2012 年 10 月 22 日 下午 10:36

    演示文件已经发了,问题能明白么?

  • vpen

    2012 年 10 月 23 日 上午 9:19

    感谢拉登叔的帮忙。虽然是小问题,之前在网上搜索很久,但是没高手帮忙总是有种求助无门的感觉。

  • siyao

    2012 年 12 月 12 日 下午 5:39

    var separator:b2Separator = new b2Separator();
    新版本里,似乎没有 b2Separator 类了?用哪个代替?

    1. ladeng6666

      2012 年 12 月 12 日 下午 9:05

      这不是Box2D带的,是国外高手写的,你可以在我的其他教程里下载到,谢谢关注

  • siyao

    2012 年 12 月 13 日 上午 9:48

    谢谢哦,不再迷茫了

  • xiaoxin999

    2012 年 12 月 13 日 下午 4:59

    LDEasyBox2D.getBodyAtMouse()下的
    function callBack( fixture:b2Fixture ):void
    编译错误:找不到类型或不是编译时常数。
    拉登兄这是怎么回事 给看看呗

    1. ladeng6666

      2012 年 12 月 13 日 下午 9:17

      提示什么错误?白天基本不上网,有问题给我发邮件吧,我的邮箱:ladeng6666@163.com

  • xiaoxin999

    2012 年 12 月 13 日 下午 5:00

    5.0 版的

  • xiaoxin999

    2012 年 12 月 13 日 下午 5:01

    用的是FlashCS5.5

  • xiaoxin999

    2012 年 12 月 13 日 下午 5:13

    function callBack( fixture:b2Fixture ):void 那个问题好了

    还有一个重要问题 import Box2D.Box2DSeparator.b2Separator; 这个东东没有呀

    1. ladeng6666

      2012 年 12 月 13 日 下午 9:12

      这是国外牛人写的一个类,可以在Box2D多边形刚体贴图这篇教程里找到

  • andyrainbow

    2013 年 1 月 13 日 下午 5:33

    受益匪浅。。。

  • 石头

    2013 年 2 月 1 日 上午 10:13

    用你的这个函数createWrapWall,传进来的stage的w和h都是0,是怎么回事啊

    1. ladeng6666

      2013 年 2 月 1 日 下午 10:05

      代码里我写的是width和height,把它们分别改成stageWidth和stageHeight就好了。

  • 石头

    2013 年 2 月 2 日 下午 12:01

    对flash基本的知识还不是很了解。就来学习box2d了,呵呵。

发表评论

电子邮件地址不会被公开。 必填项已用*标注