我的任务是使用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是在不同时刻存储速度x分量的Vector2 (我使用的是中值定理)。基本上,我找到了x分量的加速度。现在,如果我施加一个力,我做加速度*质量。这是我完全困惑的地方。
F= ma.是的,所以我可以得到一个力变量。但是现在我如何利用这个力来适当地影响速度。本质上,在施加了力之后,速度应该是偶然的。当它们是两个完全不同的变量(牛顿和米/秒)时,我如何从力的某个值改变速度。
在这方面的任何帮助都是非常感谢的。
发布于 2016-05-23 16:43:02
用初始速度v1和质量m1,你的初始动量p1 = v1m1。(m1 + m2)vf = m1v1也是真,假设第二个物体的初始速度是0。这意味着这两个对象的最终速度将被称为最终速度vf = m1 * v1 / m1 + m2。
如果你计划碰撞运动物体与现实物理,我建议你一些先进的物理课程/教程。
https://stackoverflow.com/questions/37385971
复制相似问题