Поворот шлейфа
Привет, Булка! Недавно в библиотеках я выложил эффект мешевого шлейфа. Этот эффект был нужен для создания рисованной линии на экране( как например во fruit ninja). Но тут есть проблема. Не получается развернуть по движению мыши сам шлейф. Точнее получается но частично.
Исходник шлейфа по ссылке на его тему. Вот код примера:
Код:
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
Include "MeshTrail.bb"
CreateLight(1)
Global Cam=CreateCamera()
PositionEntity Cam,0,40,-100
tex=LoadTexture("Trail2.png",16+32)
Trl=Trail_Create(0,1,0,0,0,0)
For i=1 To 10
Trail_AddSegment(Trl,i,5,0,i,0,0)
Next
Cone=CreateCone(4)
p1=CreateSphere(4,Cone)
PositionEntity p1,2,0,0
p2=CreateSphere(4,Cone)
PositionEntity p2,-2,0,0
;HideEntity Cone
EntityTexture Trail_GetTrail(Trl),Tex
EntityFX Trail_GetTrail(Trl),1+16
EntityBlend Trail_GetTrail(Trl),3
Repeat
WireFrame KeyDown(17)
If MouseDown(1)
PositionEntity Cone,(MouseX()/4)-50,(-MouseY()/4+5)+100,0
Trail_MoveSegments(Trl,EntityX#(p1,1),EntityY#(p1,1),EntityZ#(p1,1),EntityX#(p2,1),EntityY#(p2,1),EntityZ#(p2,1))
;RotateEntity Cone,0,0,ATan2#(MouseYSpeed(),MouseXSpeed())
AlignToVector Cone,MouseXSpeed(),MouseYSpeed(),0,3
EndIf
If MouseDown(2)
PositionEntity Cone,(MouseX()/4)-50,(-MouseY()/4+5)+100,0
Trail_AddSegment(Trl,EntityX#(p1,1),EntityY#(p1,1),EntityZ#(p1,1),EntityX#(p2,1),EntityY#(p2,1),EntityZ#(p2,1))
;RotateEntity Cone,0,0,ATan2# (MouseYSpeed(),MouseXSpeed())
EndIf
UpdateWorld
RenderWorld
Text 20,20,"LMB - move trail"
Text 20,30,"RMB - create segments"
Text 20,40,"W - toggle wireframe"
Flip
Until KeyHit(1)
End
Не получается повернуть его при движении по диагонали. В связи с чем возникает два вопроса:
1) Почему?
2) Как от этого избавиться?
|