Показать сообщение отдельно
Старый 11.12.2011, 16:58   #90
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопросы про Xors3D

Сообщение от ANIK123 Посмотреть сообщение
wolfhound512 - еще раз спасибо!)

Возник еще другой маленьий вопросик:
Использую функцию xPointEntity(a, b, 0.1f) - но объект поворачивается к другому объекту моментально - не смотря на указанное Мной 0.1f (пробовал и другие значения)
зы: в документации третий параметр значится как "ролл" - а обьект должен поворачиваться по "яве" - в этом трабла чтоли?
Еще пробовал поворачивать энтити по вектору (xAlignToVector()) - результат даже не могу описать)
Как быть то?
1. Первое запоминаешь текущий углы нацеливаемого объекта.
2. xPointEntity(a, b) считываешь нужный угол.
3. Ставишь объекту угол равный первому плюс некоторая часть разницы между вторым и первым положением.

Можно сделать что бы за кадр поворачивалось на фиксированный угол либо на часть всей дельты. В первом варианте будет поворот с равной угловой скоростью, а во втором при приближение к нужному углу объект будет более реалистично притормаживать.
Впрочем, счас гуры укажут более эффективный способ

иксАлигнтовектор работает еще лучше. Вектор к которому нужно отравнять: Позиция цели минус позиция пушки. Вектор по которому стоит пушка это (cos(pitch)*sin(yaw);cos(yaw);sin(pitch)*sin(yaw)) хз почему, но это так. Далее из вектора к которому нужно прицелить вычитаем текущий вектор положения пушки или чего там у тебя. Получается вектор от конца текущего положения к концу нужного. Делишь этот третий вектор на кол-во кадров за которое нужно довернуть до цели. Прибавляешь к вектору текущей ориентации поделенный вектор дельты. Прицеливаешь ентити к итогу. Тоже профит.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (11.12.2011)