0

最近我一直在尝试使用 Direct2D 在 C++ 中创建一个 2D 平台引擎。我目前遇到的问题是,在向它们施加重力等加速度后,让彼此靠在一起的物体正确交互。

现在我可以检测到碰撞并正确响应它们(我认为),当物体发生碰撞时,它们会记住它们靠在哪些其他物体上,因此物体可以被其他物体推动(请注意,在任何碰撞中都没有反弹,所以当物体发生碰撞时)碰撞他们保证会休息,直到发生其他事情)。每次模拟进行时,对象的加速度都会应用于它们的速度(例如 vx += ax * t,其中 t 是自上次进行以来经过的时间)。

在应用这些加速度之后,我想检查是否有任何相互靠着的物体以不同的速度移动(因为不同的物体可以有不同的加速度),并且根据这种差异,要么取消两个物体的链接,所以它们不是更长的休息时间,或者平衡它们的速度,以便它们再次以相同的速度移动。我无法创建一个可以跨许多静止对象执行此操作的算法。

这是帮助解释我的问题的图表

http://i.imgur.com/cYYsWdE.png

4

0 回答 0