Тема: Smooth turn entity
Показать сообщение отдельно
Старый 27.03.2009, 01:14   #15
Hellfalcon
Нуждающийся
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ELIAS (27.03.2009)