我怎样才能控制一个游戏2D汽车修理工从加速度和速度只有1值?

所以我有一辆在加速度和速度上运行的2D游戏,两个值最大。 加速度很小,在1的值以下,并增加一个增量。 速度大到100,通过递增当前的加速度而上升。 它们都相对于fps递增,但这并不重要。

我正在尝试的是只有一个值(最大值)而不是两个公式,因为我试图简化玩家的UI。

或者,我有一个价值(让我们叫它的速度),增加了一些东西,没有最大值,但受限于,可以说道路摩擦(如0.99)。 当汽车很慢时,这样的事情会感觉较低,但最终的摩擦会作为最大/极限,汽车的振动接近最大值。

我知道物理和汽车的东西太less,我自己想出来,所以我伸出援手。 谢谢!

我认为你模拟摩擦的想法是正确的。 现实生活中速度的一个更大的限制因素是空气阻力,它随着速度的平方而增加。

空气阻力是一种阻力,使用它你会做类似的

DRAG_COEFFICIENT = .0001 drag_acceleration = speed * speed * DRAG_COEFFICIENT speed = speed - drag_acceleration * timestep 

在较低的速度下,由于非常小的DRAG_COEFFICIENT ,这个阻力的影响相对较小。 随着汽车行驶速度的加快,汽车加速越来越less。 在一定的speed ,阻力会超过加速时所增加的力量,从而导致赛车颠簸。

我会建议一个对数函数 。 对数曲线开始快速攀升,但趋于趋于极限时变缓。

在这里输入图像说明

你不得不琢磨一下这个等式,以便为你想要的做出正确的select,但这是基本的概念。 你的增量是这里的X轴,你的速度是Y轴。 随着X变高,Y趋向于最大限度。