节点的子节点中存在刚体组件的时候,对父节点进行缩放子节点的位置会被改变。

可以看到下图中两次缩放之间小球的位置被改变,开发者添加的自定义脚本中仅修改了 sceneRootNode节点的缩放。

猜想:

  • box2d中不存在节点层级的概念,
  • box2d 的世界坐标系对应着cocos渲染引擎的世界坐标,当需要渲染某个节点的时候,会将对应刚体的位置映射成渲染引擎中世界坐标的位置,再转换成本地坐标。

如果真如上面所说,cocos的某个节点带有刚体的时候,节点如果在运行中进行缩放就一定会出现问题。我在社区中看到了类似的问题。也没有解决。

这个问题需要修改物理世界和渲染世界的坐标比例。