在我的 Corona SDK 游戏中,我希望一个物品从天上掉下来,然后在屏幕上随机指定的点沉降之前上下弹跳几次。假设我将在 X=500 和 Y=0 处放置一个项目。然后,我在 Y=700 处指定一个下落点,该项目将一直下落到 Y=700,然后弹回,然后向下,几次后(取决于弹力),安顿下来并停留在那里。
这个游戏是 2.5D,所以在底部有一个静态物理场是行不通的。
为此,我提出了两个选择,但都不是很好:
在我希望项目击中并上下反弹的位置制作一个临时不可见的 2x1 物理平台。这个平台是在我放下物品的那一刻创建的,并在物品安定下来(睡着了)时删除。
当物品通过某个点时,注入力或改变线速度。
然而,因为我的重力已设置为 40(9.8 的正常重力太飘了),一旦它停止在平台上弹跳,该项目将真正振动,并在 20 到 -40 的速度之间振荡(变化)而不去睡觉。
Injecting force 方法也造成了奇怪的结果,因为代码检查每个 enterFrame 事件的速度,所以结果并不一致。