跃出水面物体的动态体

dynamic body jumping out of water object

在我的游戏中,我有一个主要对象,一个水上摩托艇,当触摸屏幕时,它会潜入水中。我设法用 Box2d 和一些浮力编写了水上摩托艇潜水的代码。但是当摩托艇在水下时,它只是上升到水面并停留在那里。简而言之:摩托艇没有跳跃。我考虑尽快施加力量,因为摩托艇在水面上。它的问题是该力将是一个恒定的力,忽略水上摩托艇的深度(水上摩托艇越深,它应该上升和跳出的速度越快)。 还有其他方法吗? 这就是我想要的东西:https://www.youtube.com/watch?v=b2t_zMOy5SM

根据我从您的评论中收集到的新信息,我猜您在编写此示例时遇到了问题...

  1. 你的body总是在水面上冲浪。
  2. 如果你按下一个给定的按钮,你的 body 应该会下降
  3. 按住此按钮时始终保存深度
  4. 如果松开按钮:setLinearVelocity to X
  5. 如果你到达了空中,根据你的深度应用一次 linearVelocityForce。

如何实施取决于您。

正如我从您上传到 youtube 的视频中看到的,您可能在以下位置遇到了问题:
4:
因为我看不到你给我们的任何代码,我推测你在每一步都应用线速度,直到你到达空中(这导致大量的线速度 = 像移动一样传送)
或者您将 body 设置为给定坐标。

我能想到的最简单的想法是将 linearVelocity 设置为给定的量(尝试错误,直到您满意为止)因为,如果您不深入研究,您会立即获得最大的上升速度,直到您到达空中,并在这个确切的点(5) 你施加一个力。