Показать сообщение отдельно
Старый 27.11.2011, 10:46   #112
Greymem
Нуждающийся
 
Регистрация: 31.05.2010
Сообщений: 63
Написано 3 полезных сообщений
(для 3 пользователей)
Ответ: Вопрос-Ответ (для новичков BlitzMax)

Сообщение от Платон Александрович Посмотреть сообщение
Это довольно просто
дистанция = | координаты_цели - координаты_бота |
время_полета_снаряда_по_прямой = дистанция / скорость_снаряда
упрежденные_координаты_цели = координаты_цели + скорость_цели * время_полета_снаряда_по_прямой

а если нужен именно угол, используй ATan2 с разностью упрежденных_координат_цели и координат_бота
Спс, данные операции я итак сейчас проделываю, только если скорость цели=0. Тогда можно смело запускать снаряд туда, где цель сейчас и стоит. Там уже нам t ненужно, ибо все равно они столкнуться когданибудь.

Но если цель подвижна (с постоянной скоростью и углом направления) данный алгоритм уже не годится. Ибо сначала надо расчитать куда стрелять чтобы они столкнулись

Сообщение от Платон Александрович Посмотреть сообщение
упрежденные_координаты_цели = координаты_цели + скорость_цели * время_полета_снаряда_по_прямой
Опять таки время полёта в данном случае это время полета снаряда до той координаты где БЫЛА цель. А цель то перемещается. =(
__________________
Мозги... у них есть метод "Storm"
(Offline)
 
Ответить с цитированием