如何使用js重现斜发射(如愤怒的小鸟)?

时间:2016-10-26 04:28:27

标签: physics game-physics

我需要重现某个物体的倾斜发射,就像一个人将石头扔向空中。实际上我不知道如何开始代码。

2 个答案:

答案 0 :(得分:0)

你必须使用"自由落体"公式:y = y0 + v0 * t - (g *(t ^ 2))/ 2

在这种情况下,v0是初始速度。 Supouse 10.并且,g是重力加速器常数(在现实世界中〜= 9,8 m / s ^ 2)。 Supouse你使用10来使更容易。

您将调用创建新职位的Interval。你的增量应该是t。

function height_formula(t){
    var h;
    var h0 = 0;
    var v0 = 10;
    var g = -10;
    return h0+(v0*t)+(g*t*t/2);
}

然后,你应该在间隔中调用这个函数。

t = 0;
function apply_formula(){
    var obj = document.getElementById('id');
    obj.style.position = 'absolute';
    obj.style.marginBottom = height_formula(t);
    ++t;
}
interval = setInterval(apply_formula,500);

注意:物理学中的y在计算机科学中具有相反的方向。我使用marginBottom而不是marginTop因为这个。

答案 1 :(得分:0)

愤怒的小鸟使用物理引擎。你可以尝试只实现自由落体。这将是一个非常基本的实现。只需要一个速度并将其向下推一个常数。然而,实现位置,速度,加速度矢量可能更容易。然后,您可以使用euler积分来获得每帧的新速度和位置。