Armature如何与chipmunk的刚体进行绑定?并且使Armature受重力影响!

我在代码中这样设置Armature的刚体,下面的this._sprite就是Armature类型的

var size = this._sprite.getContentSize();
//cp.Body(质量,惯性力矩)
this._body = new cp.Body(1,cp.momentForBox(1,size.width * Math.abs(this._scaleX),size.height * Math.abs(this._scaleY)));
this._body.setPos(cp.v(this._x,this._y));

//将刚体添加到物理空间
this._space.addBody(this._body);
//关联物理刚体和精灵
this._sprite.setBody(this._body);

但是在debug模式下观察到,物理刚体和形状会收重力影响,而Armature不受重力影响,请问各位大大这是什么情况?
下面是截图

开始时的效果,刚体和形状与Armature保持一致

重力影响后,刚体和形状在下落,而Armature却不动

跪求版主大人给一个cocostudio Armature和chipmunk物理引擎结合使用的sample!

:2::2::2:同问啊

同问啊…

没看到楼主 添加 cpShape到 cpSpace中的代码,不知道楼主是怎么显示出碰撞区域的。

如果楼主是用的例子中的那个Armature,会带一个shape,当setBody的时候会创建。

然后呢,armature不跟着shape一起动,是正常的,chipmunk只负责刚体的运动。

要跟随刚体一起移动,需要自己将cpBody的位置,算入到armature的transform中, ccArmature并没有做这个工作。

不过在Cocos2d-x-3.1中提供了一个PhysicsSprite的类,它是有同步cpBody的坐标的。

但是armature也没有继承PhysicsSprite,还是不行,得自己写。

还有另一种办法,就是3.1中封装的Physics系列,CCPhysicsWorld,CCPhysicsBody等等,也是可以同步 刚体的 坐标,
用起来也比较简单,不过目前armature不支持这一系列,自己手动改一下还是可以用的。

可以看一下上面提到的 PhysicsSprite,和 Physics系列的源码。

还有问题就 PM吧。