Чтоб не заводить новую тему, о повороте.
Хэлп плиз, что тут не так... ни чего в голову не идет, как этот косяк обойти.
============Copy==============
;чтобы засечь глюк, нужно сразу после загрузки
;кликнуть ровно сзади `юнита`
;а он падла поедет вперд
;при втором типе поворота вообще кавардак,
;хотя теоретически должно быть все в елочку
Graphics3D 1024,768,0,1
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,10,-10
RotateEntity CreateLight (),33,33,0
Global TempPivot=CreatePivot ()
Land=CreatePlane () : EntityColor Land,0,100,0 : EntityPickMode Land,2
Unit=CreateCube () : ScaleEntity Unit,.5,.5,1 : EntityColor Unit,0,0,100
WayPoint=CreateCube () : ScaleEntity WayPoint,.05,1,.05 : EntityColor WayPoint,100,0,0
PointEntity camera,Unit
Trigger=-1
Repeat;======
If MouseHit (1)
CP=CameraPick (camera,MouseX(),MouseY())
If CP
PX%=PickedX()
PZ%=PickedZ()
PositionEntity WayPoint,PX,0,PZ
EndIf
EndIf
d#=EntityDistance(Unit,WayPoint)
If d#>0.1
If Trigger<0
Align1(Unit, WayPoint, 0.15)
Else
Align2(Unit, WayPoint, 0.15)
EndIf
MoveEntity Unit,0,0,0.1
EndIf
If KeyHit (57) Trigger=-1*Trigger ;пробелом
RenderWorld
Rect MouseX(),MouseY(),2,2
If Trigger<0
Text 50,50, "Align1"
Else
Text 50,50, "Align2"
EndIf
Flip
Until KeyHit(1) ;======
End
Function Align1(Entity, WP, AlignRate#)
dx#=EntityX(WP,1) - EntityX(Entity,1)
dz#=EntityZ(WP,1) - EntityZ(Entity,1)
AlignToVector Entity, dx, 0, dz , 3 , AlignRate#
RotateEntity Entity,0,EntityYaw (Entity,1),0,1 ; чтоб не перевернуло, не влияет на баг с поворотом
End Function
Function Align2(Entity, WP, AlignRate#)
PositionEntity TempPivot , EntityX(Entity,1) , 0 , EntityZ(Entity,1),1
PointEntity TempPivot,WP
Yaw#= ( EntityYaw(TempPivot,1) - EntityYaw(Entity,1) ) *AlignRate#
TurnEntity Entity,0,Yaw#,0
End Function
============Past==============