Предсказание пути мяча - Искусственный интеллект - PullRequest
4 голосов
/ 10 мая 2011

Я реализую простую игру в волейбол, используя Box2D во Flash.Мне нужно реализовать AI для процессора процессора.Давайте назовем его Джеком.Так что Джек должен предсказать, где мяч приземлится после того, как его ударил Джон, человек-игрок.У меня есть следующая информация:

  1. Начальная линейная скорость (как в направлении х, так и у) мяча, когда Джон ударяет по нему.
  2. Начальная позиция мяча, когдаДжон бьет это.(значения координат x & y)
  3. Значение силы тяжести.
  4. Значение y позиции пола, где будет падать мяч.
  5. Угол, под которым Джон бьет по мячу.
  6. Мяч движется по траектории снаряда.

Так что Джеку нужно предсказать, каким будет положение(х значение) мяча, когда он падает на пол.

Я думаю, что, когда мяч движется по траектории снаряда, проблема может быть такой же, как и при стрельбе из пушечного ядра из некоторого известного начального положения, известной начальной скорости с фиксированной силой тяжести и предсказании места приземления.Значение y места приземления также известно.Сопротивление воздуха равно нулю.

Существует ли какое-либо математическое уравнение, которое могло бы помочь предсказать значение x точки приземления?Я взглянул на некоторые уравнения снарядов, но большинство из них принимают «время» в качестве переменной.Мне нужно решение, которое не включает эту переменную времени.Любые обходные пути для этой проблемы также приветствуются.Спасибо!:)

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

Если у вас есть уравнение для z (т.е. высоты) в терминах t, то вам нужно решить это для z = 0, чтобы получить значение t, когда мяч приземляется.Затем вы можете передать это обратно в уравнения для x и y.

1 голос
/ 10 мая 2011

Вы должны решить z (x) = 0 с этим уравнением: g - сила тяжести, v0 - начальная скорость вдоль оси x, a - угол.

Equation of z with x variable

Когда вы решаете это, он дает длину сегмента, соединяющего начальную и конечную точки (выберите одну конечную точку в зависимости от направления попадания).

Resolution

Если вы находитесь в 3D, вам нужно будет сделать несколько проекций, чтобы устранить 3D-проблему, и оставить только две оси.

0 голосов
/ 11 мая 2011

Начальная линейная скорость (в обоих направлениях x и y) мяча, когда Джон ударяет его.

Начальная позиция мяча, когда Джон ударяет его.(значения координат x & y)

Значение силы тяжести.

А направление - отрицательное направление y, конечно.32.2 ft/sec^2 = 9.8 m/sec^2, верно?

Значение позиции y на полу, куда упадет мяч.

Удар при y = 0, если другой игрок не коснетсяэто.

Угол, под которым Джон бьет по мячу.

Я думаю, что было бы лучше сказать что-то о силе, которую Джон применяет к мячу и о том, какдолго.

Мяч идет по траектории снаряда.

Нет, у вас такого нет.Это то, что вы пытаетесь решить.

То, что у вас есть, это закон Ньютона: F = ma, где сила - это вектор силы, приложенной к мячу, m - масса шара, a - ускорениевектор, примененный к мячу.

Конечно, мяч ускоряется под действием силы тяжести в отрицательном направлении y, но вы забываете вектор силы, который игрок применяет при ударе по мячу.

Получив их, вы решаете два связанных ОДУ вперед во времени.

...