-1

我正在尝试使用 AS3 创建 Flash 游戏。我是编程新手。我遇到的问题与游戏的跳跃重力机制有关。

目前,如果向下,向上键使角色向上移动(速度为 20 像素/帧)。如果向上键未按下,则角色停止向上移动。如果角色离开地面,那么重力也在起作用。如果角色离开地面,重力变量(最初为 0)每帧增加 (1.5)。重力变量然后抵消角色,直到它被拉到地上。在地面上,重力变量回到 0。

这工作得很好。但是,只有始终按下向上键,才能实现平滑和类似曲线的跳跃。否则,如果您松开向上键,您会很快摔倒。我知道我可以通过将跳转从按住键跳转更改为点击键跳转来解决此问题。但是,我不想那样做。

TL;DR 我想要一个完美的抛物线跳跃!

4

1 回答 1

2

这是一个有点广泛而复杂的问题。在我看来,你在将物理应用到你的游戏方面并没有走正确的路。以下是我将研究的一些概念:

  • 如果您还没有,请每帧更新您的游戏addEventListener(Event.ENTER_FRAME, frame);
  • 重力应该是一个恒定的加速度,并且总是对你的角色产生影响。const GRAVITY:Number = 9.8; // or whatever value
  • 你应该检查你的角色和地面之间的碰撞。当它们发生碰撞时,您将角色的位置设置为地面的位置(这样他就不会掉下来)。
  • 当角色跳跃时,您可以设置起始速度。在您的ENTER_FRAME事件中,重力应该应用于该速度,以便您的角色逐渐减速然后开始下降。
  • 查看 SUVAT 数学方程式,了解计算运动的简单方法。关联

如果您想要物理、碰撞检测等而无需自己编程,那么是一个流行的选择。

于 2013-10-14T19:48:59.030 回答