我试图让我的玩家根据加速度和速度进行移动。以下是如何找到速度并移动玩家:
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();
}
然而,这不起作用。当我向前移动它向前加速,然后当我放开它停止,然后向后射击。
第二个问题:如何让上述代码按照我希望的方式运行。
感谢您对这几个问题的任何帮助。
答案 0 :(得分:0)
看看这个question about friction。通过使用摩擦系数,您可以在运动中获得令人愉悦的逐渐减速。值得一提的是,您是否了解Java的现有物理引擎可能会使整个事情变得更加简单:JBox2d仅适用于2D,JBullet是3D Bullet的端口发动机。