Показать сообщение отдельно
Старый 07.05.2007, 03:26   #3
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Re: Перемещени объектов

HolyDel спасибо за предложение Вынужден отказатся Я видал эту функция у вас в проекте Вот пытался ей воспользоватся, но получается фигна какая то обект все врема поварацивается не лицом а задом
до тех пор пока яне ставлю в dy=deltayaw(ent1,ent2) не ставлю dy=-deltayaw(ent1,ent2). Но тогда получается что анемация не останавливается.
TurnSelectUnits() я вызываю в основном цикле...
....
 Type Obj
	 Field ss 
	 Field Selected 
	 Field Piv
	 Field K	
 End Type
....
s.Obj=New Obj
s\ss =LoadAnimMesh("Data\Models\Units\WorkerGo.b3d");
ScaleEntity s\ss,.006,.006,.006
LoadAnimSeq s\ss,"Data\Models\Units\WorkerSkeletGO.b3d"
s\Selected=True
s\Piv=CreatePivot()
s\k=0
PositionEntity s\piv,5,2,5
PositionEntity s\ss,5,2,5
....
Function MouseHitMap(I,J)
 Map(I,J)=1
 s.Obj=First Obj
 PositionEntity s\piv,(I*1),1,(J*1)
End Function

Function TurnSelectUnits()
   For s.Obj=Each  Obj
       	If s\Selected=True Then
            If s\K=0 Then s\K=1    		             
            yaw1=PointEntityYaw(s\ss,s\Piv,1)
            If  Int(yaw1)<>0 And AnimSeq=0       
                If s\K=1 
                   Animate s\ss,1,.2,1,0                 
                   s\K=2
                EndIf              
            EndIf  
            If  Abs(yaw1)< 1 			          
                S\k=0
                Animate s\ss,0,0,0,0
            EndIf  
   	    EndIf
   Next   
End Function


Function PointEntityYaw(ent1,ent2,speedy#=1) ;Плавно поворачивает один объект на другой только по оси Y
	dy#=DeltaYaw(ent1,ent2)
	If Abs(dy#)>speedy# Then TurnEntity ent1,0,speedy#*Sgn(dy),0,1 Else TurnEntity ent1,0,dy#,0,1
 	Return dy
End Function
(Offline)
 
Ответить с цитированием