|
3D-программирование Вопросы, касающиеся программирования 3D мира |
03.02.2010, 19:05
|
#1
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Небольшая проблема с 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, но как это сделать?
Или есть другой путь?
|
(Offline)
|
|
03.02.2010, 19:13
|
#2
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: Небольшая проблема с AlignToVector
dx#=EntityX(pivot,1) - EntityX(bullet\entity,1)
dy#=EntityY(pivot,1) - EntityY(bullet\entity,1)
AlignToVector bullet\entity, dx, dy, 0, 2
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
03.02.2010, 19:23
|
#3
|
Гигант индустрии
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений (для 92 пользователей)
|
Ответ: Небольшая проблема с AlignToVector
Спасибо. Как всегда всё просто
|
(Offline)
|
|
03.02.2010, 19:24
|
#4
|
ПроЭктировщик
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений (для 103 пользователей)
|
Ответ: Небольшая проблема с AlignToVector
можно проще
PositionEntity Pivot,PickedX()-50,PickedY()-50,0
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:31.
|