Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 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)
 
Ответить с цитированием
Старый 03.02.2010, 19:13   #2
H@NON
Дэвелопер
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Raiter (03.02.2010)
Старый 03.02.2010, 19:23   #3
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Ответ: Небольшая проблема с AlignToVector

Спасибо. Как всегда всё просто
(Offline)
 
Ответить с цитированием
Старый 03.02.2010, 19:24   #4
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: Небольшая проблема с AlignToVector

можно проще
PositionEntity Pivot,PickedX()-50,PickedY()-50,0
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com