Переработка движения NPC
Продолжаю мучить мехов. На этот раз занялся ИИшной ходьбой.
Раньше у меня было 2 отдельных файла для игрока и неписей с одинаковой логикой. И если я менял какую-то часть логики в 1 файле, то во второй я просто всё кучей копипастил.
Теперь же, набравшись опыта, я переделал систему ввода, и за ней файлы, которые контролируют самих мехов - оба они работают на основе одной и той же логики с незначительными нюансами. Например, у них одна и та же система, которая принимает ввод контроля движения. И если у игрока она активируется на классический WSAD, то NPC строит путь по точкам от текущего положения до цели, и в процессе движения симулирует ввод, как будто бы это делал игрок, выравнивая мех относительно следующей координатной точки и приближая его к ней.
Сейчас я занялся переработкой пушек и логики стрельбы. В целом всё сводится к тому, что я разбиваю большой монолитный файл на 1000+ строк на несколько более мелких, выделяю области кода, которые повторяются и переиспользую их, удаляю старые, ненужные данные.
По дороге ещё встречается много препятствий, связанных с тем, что нужно параллельно перерабатывать логику сопуствующих модулей, вроде индикаторов боезапаса или окошка выбора снарядов для пушки или энергии для лазеров.
Теперь же, набравшись опыта, я переделал систему ввода, и за ней файлы, которые контролируют самих мехов - оба они работают на основе одной и той же логики с незначительными нюансами. Например, у них одна и та же система, которая принимает ввод контроля движения. И если у игрока она активируется на классический WSAD, то NPC строит путь по точкам от текущего положения до цели, и в процессе движения симулирует ввод, как будто бы это делал игрок, выравнивая мех относительно следующей координатной точки и приближая его к ней.
Сейчас я занялся переработкой пушек и логики стрельбы. В целом всё сводится к тому, что я разбиваю большой монолитный файл на 1000+ строк на несколько более мелких, выделяю области кода, которые повторяются и переиспользую их, удаляю старые, ненужные данные.
По дороге ещё встречается много препятствий, связанных с тем, что нужно параллельно перерабатывать логику сопуствующих модулей, вроде индикаторов боезапаса или окошка выбора снарядов для пушки или энергии для лазеров.

-8003366.jpeg)
