DevBlog 004. SCP 2844. Карта и перемещение юнитов. Часть 3
Реализация алгоритма перемещения слегка затянулась, но таки удалось исправить различные баги встречавшиеся ранее.Карта была разбита на "слои". Точнее на этапы генерации. Террейн был вынесен в отдельный лист, где он лежит как источник данных и никому не мешает. Юниты (B и U) были вынесены в отдельный лист Units, а ресурсы в отдельный лист Resources. Теперь карта из себя представляет не один забитый данными и артефактами оставшимся от расчёта пути, а несколько отдельных источников данных, и финальный результат наложенный на лист GUI. Сначала берутся данные о террейне, на них исходя из данных во вкладе Units накладываются имеющиеся там юниты, и поверх имеющегося результата накладываются ещё и ресурсы. После уже готовый результат размещается на вкладе GUI и уже от этого пляшет алгоритм поиска пути, повторно считывающий и модифицирующий карту уже своими данными и пвторно её перерисовывающий.
Как оказалось ранее реализованный алгоритм поиска пути, удалось перестроить с поиска пути от U до Res, на поиск пути от U до B, всего парой правок. Это потенциально облегчит доведение элементов работы с перемещением и карты до ума. Хотя как правильно заметили в комментариях ранее, я очень сильно перемудрил, и мне это перемещение вообще было не нужно, для проверки концепта можно было бы убрать лабирин и просто двигать юнит до ресурса по прямой, без лишних расчётов.
Строим путь от U до B
Исправив всего пару строк, строим путь от U до Res
Хоть пока что не очень гибко и тем более не динамично, но таки по крайней мере оно уже работает, хоть пока и кривенько :)
на первом скрине, кстате, хорошо видно что путь не оптимальный, и его можно сократить ещё.