Показать сообщение отдельно
Старый 03.02.2010, 19:05   #1
Raiter
Гигант индустрии
 
Регистрация: 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)
 
Ответить с цитированием