请参阅我目前所拥有的演示:
https://www.dropbox.com/s/zfg3crvoohrrhij/bouncingDemo.mov?dl=0
在橙色正方形反弹“X”次后(其中“X”预先定义),橙色正方形应在绿色方块上反弹。例如,在橙色方块弹跳2次后,它必须在第3次弹跳时落在绿色方块上并再次增加高度并恢复弹跳。
我面临的问题是橙色方块并不总是落在绿色方块上。有时橙色方块按照预期落在绿色方块上,但有时它会在它之前或之后落地。我在一定数量的帧之后添加绿色方块(关闭屏幕)并通过改变每个帧的“X”坐标来移动它们。使用过渡(而不是每一帧)移动橙色方块。
每3次弹跳后,保证橙色物体落在绿色物体上的最佳方法是什么?
答案 0 :(得分:0)
使正方形和平台位置成为时间的函数。
所以平台位置可能是:
Xp =速度* t
Yp =平台高度
弹跳方块位置更复杂,但x位置很容易
Xb = velocityX * t
由于不连续性很难表达,因此反弹使Yb变得复杂。如果我们假设每次弹跳都没有能量损失,那么每次弹跳都会持续相同的时间:
Yb =(initialUpVelocityY * t mod bounceTime) - (0.5 * g *(t mod bouncetime)^ 2)
现在求解Xp = Xb和Yp = Yb并且t = x * bouncetime