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=1274)

ЛысыЙ_Чук-Иванчук 10.08.2006 11:40

Как узнать мировые координаты объекта
 
Как узнать мировые координаты объекта.
И почему пули летят криво не по прицелу
Цитата:

If MouseDown(1)
s.pyl=New pyl
s\entity=CopyEntity(shot_sprite)
PositionEntity s\entity,EntityX(lox),EntityY(lox),EntityZ(lox)
RotateEntity s\entity, EntityPitch(cam),EntityYaw(lox),0


EndIf
vs#=20
max_dist#=1000
For a.pyl=Each pyl
MoveEntity a\entity,0,0,vs#
If a\dist#>max_dist#
FreeEntity a\entity
Delete a
; ElseIf EntityCollided(a\entity,TypeBAZA)
; FreeEntity a\entity
; Delete a
EndIf
Next



Diplomat 10.08.2006 11:56

Re: Как узнать мировые координаты объекта
 
Не издевайся! Координаты, а также ориентация обьекта возвращается функциями EntityX()... , и далее по списку.

Из конкретики у меня всё.

Далее пошел процесс построения догадок. Ибо вопрос не подразумевает ответа вообще: нет никаких данных.

Догадка1:
Цитата:

EntityYaw( entity,global)
Кроме хендла ентити, в интересующие нас ф-и передается еще значение true/false вторым параметром. При 0- ф-я возвращает относительные координаты/ориентацию указанной ёнтити, при 1- абсолютные. Если ёнтити с именами "cam" и "lox" имеют паренты, то размещение пули по их относительным координатам тебе ничего не даст. Ставь вторым параметром 1 (true). А где там у тебя прицел- я не знаю.

Догадка 2:
Цитата:

И почему пули летят криво не по прицелу
Какие руки, такие и пули.
:-)

ЛысыЙ_Чук-Иванчук 10.08.2006 22:15

Re: Как узнать мировые координаты объекта
 
Цитата:

Как узнать мировые координаты объекта.
Приношу свои извенения ко всем кто прочел этот вопрос:@ ,
я хотел узнать как найти мировые координаты привязоного объекта.

Цитата:

Догадка 2:

Цитата:
И почему пули летят криво не по прицелу
Какие руки, такие и пули.
В какойто мери ты прав:(

jimon 10.08.2006 23:30

Re: Как узнать мировые координаты объекта
 

представляем мега новый язык программирования "йо"

#define move ->
#define do ->>
обект -> стена ->> "ап"

компилер разворачивывает ето в мега код
обект move стена do "ап"

и линкер добивает
обект ап стена


там есть global и local координаты... тебе надо global :) учим основы САПР

tormoz 11.08.2006 01:22

Re: Как узнать мировые координаты объекта
 
Цитата:

я хотел узнать как найти мировые координаты привязоного объекта
Так узнал, или нет ?
если второе - перечитай пост Дипломата

Platon 11.08.2006 08:35

Re: Как узнать мировые координаты объекта
 
Когда ты копируешь пулю - оригинал, привяжи копию к оружию или пивоту на конце ствола( CopyEntity( пуля_оригинал, оружие_или_пивот ) ), тогда копия автоматически сориентируется так же как и оружие или пивот. Далее открепи ее EntityParent( пуля_копия, 0 ) и теперь в функции обновления двигай вперед по координате Z
MoveEntity пуля_копия, 0, 0, скорость_пули

Еще как вариант - ориентировать пулю по вектору оружие -> цель
Координаты точки попадания пули например узнавать с помощью CameraPick( камера, координата_прицела_X, координата_прицела_Y )
точка_попадания_X = PickedX()
точка_попадания_Y = PickedY()
точка_попадания_Z = PickedZ()
потом, зная координаты оружия
оружие_X = EntityX( оружие )
оружие_Y = EntityY( оружие )
оружие_Z = EntityZ( оружие )
Далее получаем из этих координат вектор
Dx# = точка_попадания_X - оружие_X
Dy# = точка_попадания_Y - оружие_Y
Dz# = точка_попадания_Z - оружие_Z
Выравниваем пулю по этому вектору ( линии от оружия до точки попадания ) с помощью AlignToVector
AlignToVector( пуля_копия, Dx, Dy, Dz, 0 )
и все, теперь в функции обновления можем ее двигать вперед по координате Z
MoveEntity пуля_копия, 0, 0, скорость_пули
ЗЫ
Я правда непомню нужно ли делать компоненты вектора отрицательными или нет
AlignToVector( пуля_копия, -Dx, -Dy, -Dz, 0 )
Вобщем поэкспериментируй :)
ЗЫ
Глобальные координаты(мировые) узнаються с помощью последнего параметра - флага в некоторых функциях
например
EntityX( обьект, флаг_глобальных_координат )
тоесть ставь последний параметр как True.

impersonalis 11.08.2006 14:21

Re: Как узнать мировые координаты объекта
 

2vlad: судя по тому, что объясняет тебе Платон(Cyan) - в FAQ ты не заглядывал =/


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

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