Показать сообщение отдельно
Старый 25.05.2009, 19:01   #17
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Ответ: Скорость юнита

Чтоб не заводить новую тему, о повороте.
Хэлп плиз, что тут не так... ни чего в голову не идет, как этот косяк обойти.
============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==============
(Offline)
 
Ответить с цитированием