Очередь на поиск путей позволит избежать случая, когда за один кадр ищется путь для большого количества объектов, что может вызвать лаг. Эта статья будет теоретической по двум причинам. Во-первых, реализация этого метода очень проста. А во-вторых, алгоритм нахождения пути, который мы разобрали, дает задержку в одну секунду при одновременном поиске 10000 путей за раз. Даже если у нас будет десять тысяч солдат в игре, то вряд ли мы ощутим такой лаг, так как они будут искать путь в разное время. Но все же давайте рассмотрим такой случай.
Чтобы избежать такой задержки, мы создадим очередь на поиск путей в виде массива. Каждый объект, которому нужно будет получить новый путь, будет записываться в эту очередь. Теперь нам надо каждый кадр брать часть запросов (или все запросы, если их мало) и находить для них путь. Но сколько запросов брать для обработки? Я бы не советовал указывать какое-то конкретное число и не стал бы распределять это количество в зависимости от FPS. «Тогда как?» - спросите вы (а если не спросите, то можете двигаться к следующей статье). А все просто, отведем, скажем, время в 100-200 миллисекунд на эту процедуру, после каждого найденного пути проверяем общее потраченное время за этот кадр, и если оно больше нашего заранее определенного, то продолжаем работу программы, а другие «счастливчики» будут ждать следующий кадр.
По своему опыту скажу честно, такого мне делать не приходилось, но если вам это все-таки понадобится, то не забудьте удалять из очереди запросы тех объектов, которые, скажем, погибли.
1 коммент.:
The King Casino - Homepage - CommunityKhabar.com
The King 더킹카지노 Casino happyluke - Homepage. クイーンカジノ CommunityKhabar.com. Facebook. https://www.facebook.com/pages/The_King_Casino/
Отправить комментарий