使用force在Libgdx Java中移动对象

时间:2016-05-23 08:19:27

标签: java libgdx

我的任务是使用LibGdx游戏引擎在java中创建我自己的物理引擎以进行碰撞。这是一个自上而下,所以忽略重力。我陷入困境,想知道如何对身体施加力量。我通过找到一段时间内的速度变化来找到加速度。以下是如何找到x分量的加速度:

    Vector2 velX = new Vector2();
public void update(){
    timer += Gdx.graphics.getDeltaTime();

    movementSpeed = 5 * Gdx.graphics.getDeltaTime();
    coordinates.x += vel.x;
    coordinates.y += vel.y;
    if( timer >= .5f && timer < 1){
        velX.x = vel.x;
    }
    if(timer >= 1){
        velX.y = vel.x;
        acceleration.x = (float) ((velX.y - velX.x)/ (1 - .5));
        timer = 0;
    }

vel.x是x速度,velXVector2,用于在不同时间存储速度的x分量(我使用均值定理)。基本上,我已经找到了x组件的加速度。现在,如果我施加一个力,我会加速*质量。这是我完全困惑的地方。

F = ma。是的,所以我能够获得一个力变量。但是我现在如何使用此力来适当地影响速度。基本上,在施加力之后,速度应该是偶然的。当它们是两个完全不同的变量(牛顿和米/秒)时,如何从某个力值更改速度。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

初始速度v1和质量m1初始动量p1 = v1m1。 (m1 + m2)vf = m1v1也是如此,假设你的第二个物体的初始速度为0.这意味着两个物体的最终速度将被称为最终速度vf = m1 * v1 / m1 + m2。

如果你打算用真实的物理碰撞移动物体,我建议你使用一些高级物理课程/教程。