【问题标题】:(Games) Jumping and Gravity Mechanics(游戏)跳跃和重力力学
【发布时间】:2013-10-14 17:55:04
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我刚刚有了一个想法。如果我有办法测量我按住向上键的时间,我可以用它作为向上移动速度的一个因素。

标签: actionscript-3 physics gravity


【解决方案1】:

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

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

如果您想要物理、碰撞检测等而不需要自己编程,那么this 是一个受欢迎的选择。

【讨论】:

    猜你喜欢
    • 2015-06-28
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多