27.03.2009, 01:14
|
#15
|
Нуждающийся
Регистрация: 13.01.2007
Сообщений: 88
Написано 2 полезных сообщений (для 2 пользователей)
|
Ответ: Smooth turn entity
еще можно так

Function EntityPoint(Entity,Point)
;========================================
;b - коректирующий угол .
AngleEntityUp_Target#=pointAtxy(Entity,Point)+b
AngleEntityUp#=EntityYaw(Entity)
;============================================
;перевод углов в нормальные ~0-359
If AngleEntityUp_Target<0 Then AngleEntityUp_Target=(180-Abs(AngleEntityUp_Target))+180
If AngleEntityUp<0 Then AngleEntityUp=(180-Abs(AngleEntityUp))+180
;================================================= ======
;условия для поворота в кратчайшую сторону
If (((Abs(AngleEntityUp-AngleEntityUp_Target))<=180) And (AngleEntityUp<AngleEntityUp_Target)) Or (((Abs(AngleEntityUp-AngleEntityUp_Target))>180) And (AngleEntityUp>AngleEntityUp_Target)) Then
AngleRotate=1
Else
AngleRotate=-1
End If
RotateEntity Entity,EntityPitch(Entity,1),EntityYaw(Entity)+Ang leRotate,EntityRoll(Entity,1),1
end function
Function pointAtxy#(p1,p2)
;==============================
;!!!!!!!!!
dx#=EntityX(p1,1)-EntityX(p2,1)
dy#=EntityZ(p1,1)-EntityZ(p2,1)
;!!!!!!!!
Return ATan2#(dy,dx)
End Function
|
|
(Offline)
|
|