☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: как сделать плавные повороты
Graphics3D 800,600
SetBuffer BackBuffer()
obj1=CreateSphere()
obj2=CreateCone()
RotateMesh obj2,90,0,0
p=CreatePlane()
EntityAlpha p,0.5
EntityColor p,255,0,0
cam=CreateCamera()
PositionEntity cam,0,10,-20
RotateEntity cam,45,0,0
l=CreateLight()
PositionEntity obj2,0,0,0
PositionEntity obj1,4,4,4
EntityBox p,-10000,-2,-10000,20000,2,20000
EntityPickMode p,3
While Not KeyDown(1)
If MouseDown(1)
CameraPick(cam,MouseX(),MouseY())
cx#=PickedX()
cz#=PickedZ()
PositionEntity obj1,cx,4,cz
EndIf
curvepointentity(obj2,obj1,5,5)
MoveEntity obj2,0,0,0.3
RenderWorld
Flip
Wend
Function CurvePointEntity(ent1,ent2,speedx#=1,speedy#=1)
dx#=DeltaPitch(ent1,ent2)
dy#=DeltaYaw(ent1,ent2)
If Abs(dx#)>speedx# Then TurnEntity ent1,speedx#*Sgn(dx),0,0 Else TurnEntity ent1,dx,0,0
If Abs(dy#)>speedy# Then TurnEntity ent1,0,speedy#*Sgn(dy),0 Else TurnEntity ent1,0,dy,0
End Function
Собственно ent1 - который надо повернуть, ent2 - на который надо повернуть,speedx - скорость поворота по оси х (за один вызов функции),speedy - скорость поворота по оси Y (за один вызов функции).
|