如何确保弹跳物体落在地面上的滚动物体上(“X”弹跳后),其中“X”弹跳是预先知道的?

时间:2016-05-22 20:29:18

标签: lua corona

请参阅我目前所拥有的演示:

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

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

我面临的问题是橙色方块并不总是落在绿色方块上。有时橙色方块按照预期落在绿色方块上,但有时它会在它之前或之后落地。我在一定数量的帧之后添加绿色方块(关闭屏幕)并通过改变每个帧的“X”坐标来移动它们。使用过渡(而不是每一帧)移动橙色方块。

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

1 个答案:

答案 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