如何使一个向量2相对于其他向量2正确



我正在用box2D物理制作一个2D游戏,我想在对象之间实现一个父子系统。子对象的位置将相对于其父对象。例如,父对象的位置为(10,0(,相对子对象的位置是(0,1(,结果子对象的立场是(10,1(。

我在思考如何实现这样的东西,我得出的结论是,将父对象的当前位置减去父对象的上一帧位置,添加到子对象位置向量的每个分量中,就达到了这种效果。

这在普通游戏中运行良好,但在box2d物理中,存在一些"问题";延迟;并且孩子的位置似乎比父亲更新得慢。

有什么合适的方法可以更准确地达到这种效果?

您所描述的在物理模拟世界中被称为约束。这只是意味着受约束的对象不能随心所欲地自由移动,而是有一些限制。约束的一个特殊情况是将两个实体链接在一起的关节,Box2D支持它们。在你的具体情况下,如果你希望孩子总是和父母完全在同一个位置,你可能想要一个";焊接";共同的

也就是说,如果你想在父对象和子对象之间建立100%的互锁,你可能想通过组合夹具或使用ChainShape来创建一个复合形状;这将保证系统永远不会考虑它们相对于彼此移动的可能性,至少不会考虑动态力。

最新更新