Для плавности надо сделать камере какую-то скорость поворота и скорость движения.
Псевдокод такой:
================================================== ===============
ЕСЛИ модуль (Abs) угола между игроком и камерой (DeltaYaw(camera,player)) больше shagAngle#, ТО
крутим камеру, чтобы уменьшить этот угол:
TurnEntity camera,0,Sgn(DeltaYaw(camera,player))*shagAngle#,0
ИНАЧЕ
TurnEntity camera,0,Sgn(DeltaYaw(camera,player))*DeltaYaw(cam era,player),0
этот поворот нужен для того, чтобы не было дерганья камеры
КонецЕСЛИ
================================================== ===============
shagAngle# может иметь фиксированное значение, например shagAngle# = 5.0, а может и переменное, например shagAngle# = DeltaYaw(camera,player) * 0.1 <--- в этом (втором) случае движение будет с ускорением: сначала быстро, потом медленнее...
Чё-нить понял из этого?
|