物理系统使用关节会报错

物理系统中使用关节weldjoint的两个刚体都禁止旋转fixedrotation时会有报错

报错信息:
Uncaught TypeError: K.Solve22(…).Invert is not a function
at b2WeldJoint.SolvePositionConstraints (box2d.js:15139)
at b2Island.Solve (box2d.js:12194)
at b2World.Solve (box2d.js:9586)
at b2World.Step (box2d.js:9073)
at CCClass.update (CCPhysicsManager.js:205)
at TheClass.update (CCScheduler.js:405)
at TheClass.mainLoop (CCDirector.js:1474)
at callback (CCGame.js:581)

需求要求连接的两个刚体又都必须不能旋转的,有解决方法吗?
要重现的话把官方的物理引擎demo下使用weldjoint的事例中两个刚体勾选禁止旋转就能重现

1赞

测试用例是不是stick-arrow这个,1.9.1 测试没有遇到你这个问题。

我是使用weld-joint这个用例 少说了一个步骤
除了两个刚体都勾选禁止旋转 还要把关节的弹性系数设为0
就能重现错误了
1.9.0和1.9.1我都测试过了

先添加这个代码,屏蔽一下。

https://github.com/cocos-creator/engine/pull/2848