forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Небольшая проблема с AlignToVector (http://forum.boolean.name/showthread.php?t=11836)

Raiter 03.02.2010 19:05

Небольшая проблема с AlignToVector
 
И снова здравствуйте :)

Новая проблемка.

Вот такой код работает отлично:

Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

ShowPointer

Type BulletType
        Field Entity
End Type

Global Bullet.BulletType

Light = CreateLight()
TurnEntity Light,45,45,0

plane = CreatePlane()
RotateEntity plane,-90,0,0
EntityAlpha plane,0
EntityPickMode plane,2
Global Pivot = CreatePivot()

Camera = CreateCamera()
PositionEntity Camera,0,0,-200

Repeat

If MouseDown(1) Then
                CameraPick(Camera,MouseX(),MouseY())
                PositionEntity Pivot,PickedX(),PickedY(),0
               
                Bullet = New BulletType
                Bullet\Entity = CreateSphere()
                AlignToVector Bullet\Entity,EntityX(Pivot),EntityY(Pivot),0,2
End If


For Bullet = Each  BulletType
        MoveEntity Bullet\Entity,0,10,0
Next


UpdateWorld
Flip()
RenderWorld()

Until KeyDown(1)

А такой уже не правильно:

Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

ShowPointer

Type BulletType
        Field Entity
End Type

Global Bullet.BulletType

Light = CreateLight()
TurnEntity Light,45,45,0

plane = CreatePlane()
RotateEntity plane,-90,0,0
EntityAlpha plane,0
EntityPickMode plane,2
Global Pivot = CreatePivot()

Camera = CreateCamera()
PositionEntity Camera,0,0,-200

Repeat

If MouseDown(1) Then
                CameraPick(Camera,MouseX(),MouseY())
                PositionEntity Pivot,PickedX(),PickedY(),0
               
                Bullet = New BulletType
                Bullet\Entity = CreateSphere()
                PositionEntity Bullet\Entity,50,50,0
                AlignToVector Bullet\Entity,EntityX(Pivot),EntityY(Pivot),0,2
End If


For Bullet = Each  BulletType
        MoveEntity Bullet\Entity,0,10,0
Next


UpdateWorld
Flip()
RenderWorld()

Until KeyDown(1)

Вопрос: как это исправить? Я вижу лишь один путь - обнулить координаты Bullet\Entity, но как это сделать? :rolleyes:

Или есть другой путь?

H@NON 03.02.2010 19:13

Ответ: Небольшая проблема с AlignToVector
 
Код:

dx#=EntityX(pivot,1) - EntityX(bullet\entity,1)
dy#=EntityY(pivot,1) - EntityY(bullet\entity,1)
AlignToVector bullet\entity, dx, dy, 0, 2


Raiter 03.02.2010 19:23

Ответ: Небольшая проблема с AlignToVector
 
Спасибо. Как всегда всё просто :)

Arles 03.02.2010 19:24

Ответ: Небольшая проблема с AlignToVector
 
можно проще ;)
Код:

PositionEntity Pivot,PickedX()-50,PickedY()-50,0


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

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