@s2sk1337

Как сделать навигатор для игры?

Думаю все играли в GTA5 и там был GPS навигатор. Я попробовал сначала сделать так: записать координаты перекрестков и искать ближайший перекресток игроку и ставить там метку. У меня получилось, но я не учел того, что перекресток может быть за забором и игрок туда тупо не сможет попасть... И то что над игроком может быть мост и получиться что он туда тупо не попадет... Вторая моя идея это перерисовать карту игры в формат: 1 - дорога, 0 - все остальное.

Например:
0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000001
0000000000000000000000000000011111111111111111
0000000000000000000000000000010000000000000000
0000000000000000000000000000010000000000000000
1111111111111111111111111111110000000000000000
0000000000000000000000000000000000000000000000

Но встало два вопроса. Можно ли сделать еще проще и как программным путем нарисовать такую карту?
  • Вопрос задан
  • 472 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Вам нужно почитать про алгоритмы поиска пути, начать можете с википедии. Для общего случая навигации по графу обычно используют алгоритм A*. Для трёхмерных миров удобнее использовать navigation mesh, для работы с ними есть хорошая библиотека Recast.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
x67
@x67
Почему бы не сделать эти перекрестки вершинами графа? ребра - проходимость между вершинами, а параметры ребра - расстояние между перекрестками.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Для начала нужно нормально составить вопрос, указать, какие используются технологии и что конкретно необходимо(возможно вы удивитесь, но не все играли в GTA5). Если вам нужно находить маршрут до точки, то используйте алгоритмы поиска пути, их много, гуглите.
Ответ написан
Комментировать
Astrohas
@Astrohas
Python/Django Developer
вбей в гугле поиск кратчайшего пути в лабиринте. Он тебе выдаст такие варианты как BFS, Алгоритм Волны, A* и тд и тп. Изучи любой
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы