如何确保一个反弹的物体在“X”次反弹后落在滚动的地面上,其中“X”次反弹是预先确定的?

请参阅我目前的演示:

https://www.dropbox.com/s/zfg3crvoohrrhij/bouncingDemo.mov?dl=0

有一个橙色的正方形应该在橙色的正方形反弹“X”次(其中“X”是事先定义好的)后,在绿色的正方形上弹跳。例如,在橙色正方形反弹2次后,它必须在第3次弹跳时落在绿色正方形上并再次增加高度并恢复弹跳。

我所面临的问题是,橙色的正方形并不总是落在绿色的正方形上。有时橙色的正方形按预期落在绿色的正方形上,但其他时候它在绿色的正方形之前或之后落下。我在一定数量的帧后添加绿色的正方形(在屏幕外),并通过每帧改变其“X”坐标来移动它们。橙色正方形是通过使用转换移动的(而不是通过每一帧)。

保证橙色物体在每次反弹后落在绿色物体上的最佳方法是什么?

点赞
用户4640328
用户4640328

将正方形和平台的位置都作为时间的函数。

因此,平台位置可能是:

Xp = 速度 * t

Yp = 平台高度

弹跳正方形的位置更复杂,但是x位置很容易确定。

Xb = 速度X * t

Yb由于反弹而复杂,因为间断很难表达。

如果我们假设每次反弹没有损失能量,那么每次反弹的时间都是相同的:

Yb = (initialUpVelocityY * t mod bounceTime) - (0.5 * g * (t mod bouncetime)^2)

现在解决Xp = Xb和Yp = Yb且t = x * bouncetime的方程。

2016-05-22 20:57:41