Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Стрельба с упреждением   Найти похожие ветки 

 
CHiF ©   (2003-03-21 12:48) [0]

Помогите ктонибудь реализовать.
Пишу 2дшутер вид сверху, и мне надо чтобы боты стреляли не туда где сейчас враг, а туда где он будет. Т.е. вобщем то получаетца геометрическая задача, токо вот у меня ничо невышло, вся надежда на вас, мастера.


 
A_n_t   (2003-03-21 16:54) [1]

X_Uint, Y_Uint - координаты юнита
X_Enemy, Y_ Enemy - координаты врага
Speed - скорость снаряда
X_Vector, Y_Vector - вектор движения юнита за единицу времени (скорость)

Distance - расстояние от юнита до врага
Time - время полета снаряда до юнита
X_End, Y_End - точка где будет юнит при подлете снаряда


Distance = Sqrt( Sqr(X_Uint - X_Enemy) + Sqr(Y_Uint - Y_Enemy))
Time = Distance / Speed

X_End = X_Uint + X_Vector*Time
Y_End = Y_Uint + Y_Vector*Time

стреляй по точке (X_End, Y_End)

Расчет простой, но при большой скорости полета снаряда и большого числа снарядов попадет - это точно.
Для единичных снарядов меткость будет меньше - нечего врагу с первого выстрела попадать :)

P.S. А вообще это задача для зенитных комплексов - так что за более точными расчетами обращайся к военным :)


 
Mihey   (2003-03-21 22:05) [2]

Сделать ракеты-стингеры. :)


 
CHiF ©   (2003-03-22 10:07) [3]

A_n_t: нееет, не так, если делать так, то рассчитываеца время
Time движения снаряда от юнита до ТЕКУЩЕГО положения врага, может с такой формулой и будут юниты попадать, иногда, но мне бы чегонибудь поточнее, математического такого. Может знает кто-нибудь? помогите плииз!!


 
Snap ©   (2003-03-22 10:20) [4]

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


 
Alek Aaz ©   (2003-03-22 17:31) [5]

2CHiF ©
Ну ты даешь пацан! Делается приблизительно так:
1. Вычисляешь время подлета снаряда в текущею позицию гада
Т = R (расстояние до гада)/V(скорость твоего супер-снаряда)
2. Вычисляешь где энто гад окажется в этот момент времени. Учитывая его текущюю скорост и направление.
3. Вычисляешь время подлета снаряда в гипотетическую позицию гада
Т1 = R1 (расстояние до предпологаемого положения гада)/V(скорость твоего супер-снаряда)
Если время подлета снаряда где-то равно гипотетическому то твой бот лепит в гипотетическую точку, где должен оказаться гад

Ежеле гаду хватит "ума" не переть в точку куда летит супер-снаряд то большой плюс твоему AI :)


 
Nuke   (2003-03-22 21:52) [6]

Гыыыы короче так ! делаеш своему снаряду команду !

Пуля.PoitTo( Гад);


 
Rampelstinskin ©   (2003-03-22 22:45) [7]

В векторной форме
U - Координаты юнита
V - Скорость юнита
E - Координаты врага
D - Растояние до врага
v - Скорость снаряда
t - Время
Закон изменения растояния до врага по времени
D=E+V*t-U
Со скоростью снаряда связавыем так
|D|=v*t
PS для 2d |D|=sqrt(x*x+y*y)


 
Nuke   (2003-03-22 22:51) [8]

А формулу свободного подения кто мне скажет !

А то мне надо сделать а ебаться расчитывая угол падения ! мне в падлу !


 
Rampelstinskin ©   (2003-03-22 23:00) [9]

2Nuke
Учебник физики за 5ый класс если не ошибаюсь.


 
neuro ©   (2003-03-23 04:21) [10]

2Nuke:

Что значит формулу свободного падения?!

Берем значит высоту равной H.По закону сохранения полной энергии: mv^2
---- = mgh -- отсюда можно v найти...
2

Тебе оно надо было и в координатное выражение?

2Rampelstinskin: физику с 7-го класса начинают изучать =)


 
CHiF ©   (2003-03-23 18:43) [11]

спасиба всем, ща проверим =)


 
Juster~   (2003-03-23 20:17) [12]

-> Nuke: Ты же у нас опытный товарищ, крупные проекты затеваешь... а элементаго не знаешь...


 
neuro ©   (2003-03-23 20:21) [13]

2Juster~: видимо Nuke нужно было узнать все с поправкой на угол падения..



Страницы: 1 вся ветка

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
7-82512
Frame
2003-07-11 10:12
2003.09.25
Работа с потоками NTFS.


1-82223
Wild
2003-09-11 17:40
2003.09.25
Параметры в процедурах и функциях


7-82530
Cosmic
2003-07-12 13:46
2003.09.25
Autorun in Safe Mode


3-82136
Брус
2003-09-01 15:33
2003.09.25
Как в FB выбрать с 5 по 10 запись?


1-82185
Дмитрий
2003-09-15 16:53
2003.09.25
Надстрочные и подстрочные сиволы