我的任务是使用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速度,velX
是Vector2
,用于在不同时间存储速度的x分量(我使用均值定理)。基本上,我已经找到了x组件的加速度。现在,如果我施加一个力,我会加速*质量。这是我完全困惑的地方。
F = ma。是的,所以我能够获得一个力变量。但是我现在如何使用此力来适当地影响速度。基本上,在施加力之后,速度应该是偶然的。当它们是两个完全不同的变量(牛顿和米/秒)时,如何从某个力值更改速度。
非常感谢任何帮助。
答案 0 :(得分:1)
初始速度v1和质量m1初始动量p1 = v1m1。 (m1 + m2)vf = m1v1也是如此,假设你的第二个物体的初始速度为0.这意味着两个物体的最终速度将被称为最终速度vf = m1 * v1 / m1 + m2。
如果你打算用真实的物理碰撞移动物体,我建议你使用一些高级物理课程/教程。