模拟跳跃

时间:2014-02-09 18:15:06

标签: java android math velocity

我希望模拟我的Android游戏的跳转,但我不知道如何正确实现这一点。我一直在查找速度,但我无法将其翻译为自己编码。寻找一些演示代码来实现这一目标。

当前高度变量称为: centerY ,它具有 427 作为默认值。跳转时,必须转到 360 ,然后返回 427

提前致谢!

2 个答案:

答案 0 :(得分:1)

为了简化事情我会假设跳跃会立即加速玩家。这是一些非常基本的伪代码,用于表示事物应该如何工作。请注意,除了简单的高度检查之外,您还需要找出一种更好的方法来处理地面碰撞。

G := 9.8 or something other appropriate constant
defaultY := 427;

player {
    var centerY
    var velocityY

    update(dt) {
        if (centerY < defaultY)
            velocityY += G * dt
            centerY += velocityY
        else
            velocityY := 0
            centerY := defaultY
    }

    jump() {
        dh := 427 - 360
        velocityY := -sqrt(2 * G * dh)
    }
}

在此方案中,您将在每个帧上调用player.update,为其提供从最后一帧开始经过的时间。请注意,速度是从第二个运动方程计算的:

enter image description here

你应该知道的。

答案 1 :(得分:0)

427 - 360 = 67 所以,你的物体需要跳67点。

但是,当然你需要重力和垂直速度变量 所以,你要告诉重力变量的值是什么