在2.5D游戏中让物品弹跳到任意平面的方法。

在我的 Corona SDK 游戏中,我想让一个物品从天上掉落并在屏幕上的一个随机指定位置上,弹跳几次最终落定。例如我在 X=500 和 Y=0 的位置扔下一个物品。然后我在 Y=700 的位置指定一个物品落下的点,在那里物品将从 Y=700 处掉落,弹起,再弹下,几次后(根据弹力而定),最终落定并停留在那里。

由于这个游戏是 2.5D 的,所以在底部放置一个静态物理地面是行不通的。

为了实现这个功能,我想出了两个方法,但都不完美:

1.在我想让物品碰撞、弹起和弹跳的地方制作一个临时的不可见的 2x1 物理平台。这个平台在我扔下物品时创建,当物品落定(进入睡眠状态)后删除。

2.当物品通过某个点时注入力或改变线性速度。

然而,由于我的重力设置为 40(正常重力为 9.8 时太飘了),一旦物品在平台上停止弹跳,它就会产生震动,速度会在 20 至 -40(不同的对象速度不一样)之间振荡,而且物品无法进入睡眠状态。

注入力的方法也会导致奇怪的结果,因为代码通过 enterFrame 事件检查速度,所以结果不一致。

点赞
用户1870706
用户1870706

我认为隐形栏最有意义。我会考虑将重力降低到接近正常值,并调整弹跳和密度,以达到您想要的弹性。

2013-07-01 00:58:18