forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Поворот шлейфа (http://forum.boolean.name/showthread.php?t=16868)

Gector 05.06.2012 14:07

Поворот шлейфа
 
Привет, Булка! Недавно в библиотеках я выложил эффект мешевого шлейфа. Этот эффект был нужен для создания рисованной линии на экране( как например во 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) Как от этого избавиться?


Часовой пояс GMT +4, время: 18:05.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot