Error
cocos2d-js-for-preview.js:68803
at b2Body.291.b2Body.SetTransformXY (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:68803:46)
at b2Body.291.b2Body.SetTransformVec (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:68800:16)
at cc_RigidBody.syncPosition (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:23114:23)
at cc_RigidBody._onNodePositionChanged (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:23154:14)
at EventTarget.169.CallbacksInvoker.invoke (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:27889:31)
at cc_Node.emit (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:8275:60)
at cc_Node.setPosition (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:8386:1
堆栈跟进去发现是b2world 锁定物理世界了。。。继续查为什么会锁定
只能用moveto
我也遇到同样的问题了,偶现。
我是在update里面去setpostion就可以,貌似在碰撞触发这条线一直设置错误。
这个有解决方案么 。 我也遇到同样的问题
不要在onBeginContact里面设置位置,这时候位置状态是被安全锁定的,自己把事件延迟到下一帧处理就好。
1赞
因为需要再update中动态调整位置,出了在update中去掉setPosition外还有别解决方案吗?
意思是用onEndContact去处理吗?
这样不行的!