Поиск пути в очень динамичном мире - PullRequest
1 голос
/ 23 июля 2011

Я работаю над простым симулятором футбола, я использую потенциальные поля для предотвращения столкновений, более конкретно следуя технике,

http://www.ibm.com/developerworks/java/library/j-antigrav/

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

Хотя я мог решить эту проблему, назначив силу тяги мячу, но на самом деле это еще хуже. NPS будет идти к мячу, мяч начинает тянуть, что заставляет NPC толкать мяч, он идет в петлю, пока NPC не падает на стену.

Как я это реализовал, у меня есть вектор, который направит меня к моей цели, затем я добавлю к этому все гравитационные силы, действующие на NPC, и направлюсь в этом направлении.

В основном мне интересно, какие улучшения я могу сделать? Моя текущая проблема не в том, чтобы другие игроки точно ударяли по мячу, не оказывая влияния на других игроков.

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Я не уверен, что использование потенциальных полей - это путь сюда.Если все игроки находятся непосредственно между вами и мячом, как вы к нему попадаете?

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

0 голосов
/ 23 июля 2011

Вы можете наложить некоторый предел на область эффекта, которую будет иметь гравитация другого игрока.Ограничьте его небольшим радиусом вокруг этого игрока, чтобы при отсутствии других игроков на вашего персонажа не действовали силы.Вы также можете уменьшить силу предотвращения столкновений, когда находитесь рядом с мячом, полагая, что игроки меньше заботятся о том, чтобы не бить друг друга, когда пришло время отбивать мяч.

...