我正在做一個物體,它總是面對平滑過渡 - 加速和減速的鼠標位置。跟着加速和減速的鼠標
對於近鼠標減速這是一個簡單的公式:
rotation += deltaRotation/speed
,爲了促進有一點更多的代碼(但它搖晃圍繞目標轉,因爲沒有摩擦或阻尼)
var deltaRotation = rotation - targetRotation;
if (Math.abs(deltaRotation) < EPSILON) { //Stop motion near 0
return;
}
var direction = deltaRotation != 0 ? deltaRotation/Math.abs(deltaRotation) : 0;
dv += ACCELERATION * direction * dt;
dv = FMath.clamp(dv, -MAX_SPEED, MAX_SPEED);
rotation += dv * deltaRotation;
如何合併這兩種算法,所以旋轉會慢慢開始並慢慢達到目標旋轉?
謝謝!這只是我遊戲中的一個美化細節,所以不需要矯枉過正。我使用RK4 /一些Verlet衍生物(或其他任何Nape Phys引擎使用的)來製作重要的遊戲元素。我會盡可能接受你的答案 – Misiur