Box2D多边形刚体贴图

作者: ladeng6666 分类: Box2D 发布时间: 2012-08-10 08:31 阅读: 11,819

在前面的刚体的上衣教程中,我们学会了简单的刚体贴图,确实非常简单,只需要根据b2Body刚体的坐标和角度实时更新userData的坐标和角度就可以了。那么多边形刚体贴图呢?

放心啦,没你想象的那么复杂,和简单刚体的贴图方法是一样一样的,重点是如何绘制和多边形刚体一样的图形,很幸运,我们在用drawPath自由绘制图形中已经学会了,结合运行时创建多边形刚体,我们可以轻松给多边形刚体啦(如果你还不熟练,强烈建议你好好看看这两篇教程)。效果如下:

完整的代码和注释如下:

如上面的代码所示,多边形刚体贴图同样是用body.GetPosition()和body.GetAngle()方法实时更新userData的坐标和角度。

不用的是,刚体和userData的注册点都在舞台的左上角,为什么会这样呢?仔细看一下,你会发现:

第152行: bodyRequest.position.Set(0 , 0);//刚体的坐标是(0,0)

第192行:addChild(canvas);//canvas添加到舞台后,默认的坐标也是(0,0)

所以,未来在项目中给多边形贴图时,要注意这个问题哦。

 源代码下载

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

10条评论
  • Mr.zheng

    2012 年 8 月 16 日 下午 9:32

    前一段时间,你blog好像上不来,现在ok了?

    1. ladeng6666

      2012 年 8 月 17 日 下午 9:16

      是的,前两天服务器被攻击了,已经OK了,谢谢你的关注!

  • 天琅古琊

    2015 年 3 月 3 日 上午 9:20

    请问一下,在于starlingswf结合的时候,b2DebugDraw它需要一个flash sprite,这个要怎么解决?

    1. 天琅古琊

      2015 年 3 月 3 日 上午 9:49

      而且在LDEasyBox2D中还有许多与starling冲突的地方,请问如何解决呢?

      1. ladeng6666

        2015 年 3 月 3 日 下午 10:45

        只能等我学习starling之后,基于starling重写LDEasyBox2D了,另外推荐你使用Nape,这个物理引擎与Flash兼容起来,相对更好些

        1. 天琅古琊

          2015 年 3 月 4 日 下午 5:25

          等下个项目我应该会用nape的,但是还是要结合starling,所以到时候可能还会有一些问题。

          1. ladeng6666

            2015 年 3 月 8 日 下午 9:21

            有问题欢迎随时和我交流,我的微信ladeng6666

    2. ladeng6666

      2015 年 3 月 3 日 下午 10:44

      恩,调试的时候,还是要基于Sprite的,目前还没有更好的解决方式呢,sorry啦

      1. 天琅古琊

        2015 年 3 月 4 日 上午 9:08

        请问一下在更新userData的时候,贴图在不停的乱动跟什么有关?,刚体是圆形的,但是贴图不是,而刚体的运动的时候贴图会不停的绕着刚体附近的某个点选择……

        1. 天琅古琊

          2015 年 3 月 4 日 下午 5:19

          好吧,这两个问题都解决了,之前那个b2DebugDraw直接用starling自带的Starling.current.nativeOverlay就可以了,而贴图更新角度会乱动是因为starling获取的是弧度,所以跟原生的不一样。

发表评论

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