用Java编程加速

时间:2016-05-23 08:47:48

标签: java

我试图让我的玩家根据加速度和速度进行移动。以下是如何找到速度并移动玩家:

vel.x += acceleration.x;
coordinates.x += vel.x;

coordinates控制玩家所在的位置。以下是加速度的计算方法:

if(moveRight && !(acceleration.x >= .1f)){
    acceleration.x += .1f * Gdx.graphics.getDeltaTime();
}

第一个问题:如果我要使用质量和力量来移动玩家,这是移动玩家的好方法。

我也试图让播放器停止加速,这是上面代码的扩展版本,我尝试这样做:

if(moveRight && !(acceleration.x >= .1f)){
    acceleration.x += .1f * Gdx.graphics.getDeltaTime();
}else if(!moveRight && (vel.x > 0)){
    acceleration.x -= .1f * Gdx.graphics.getDeltaTime();
}

然而,这不起作用。当我向前移动它向前加速,然后当我放开它停止,然后向后射击。

第二个问题:如何让上述代码按照我希望的方式运行。

感谢您对这几个问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

看看这个question about friction。通过使用摩擦系数,您可以在运动中获得令人愉悦的逐渐减速。值得一提的是,您是否了解Java的现有物理引擎可能会使整个事情变得更加简单:JBox2d仅适用于2D,JBullet是3D Bullet的端口发动机。