Задать вопрос
  • Как реализовать алгоритм преследования игрока с учётом препятствий-полигонов?

    maaGames
    @maaGames
    Magneto903, Зачем? В этом нет вобще никакого смысла.
    В таких случаях реализуют сразу два механизма перемещения: глобальный и локальный. Глобально - пройти из одной части местности до другой, например, по большой ячейстой структуре с ячейками по 10 метров (условно). Это может быть граф или прямойгольная матрица - не имеет значения. Просто глобальное задание того, куда персонаж должен идти. Локальный вариант уточняет движение в пределах ячейки, чтобы обходить мелкие препятствия, не сталкиваться с другими персонажами и тому подобное, при этом он всё равно стремится идти в глобально заданном направлении. Т.е. он шёл, наткнулся на пенёк, сделал шаг в сторону и вернулся к "основному плану". При этом глобальный путь вычисляется или один раз или в случаи какого-то критического события (мост взрвали, дорогу перегородили т .п.), а локальный путь пересчитывается или каждый кадр или с каким-то тикрейтом. Напрмиер, если один шаг персонажа занимает 0,5 секунды, то пересчитывать путь чаще, чем 2 раза в секунду не имеет смысла. За эти 0,5 секунды может отрисоваться 120 кадров, при этом персонаж физически не может изменить траекторию движения.
  • Как реализовать алгоритм преследования игрока с учётом препятствий-полигонов?

    maaGames
    @maaGames
    Magneto903, На самом деле, ещё больше операций будет, потому что ещё накладные расходы на сохранение инексов ячеек текущего шага. Допустим, что реализация будет очень корявая и поиск будет занимать 1 секунду. Как часто боту будет нужно перепроверять маршрут? Замечали в играх, что условный танк ехал-ехал, доехал до взорванного моста, развернулся и другим путём поехал? Это от того, что маршрут перепроверяют не в каждом кадре и не раз в секунду даже.
    Для оптимизаци можно карту побить на крупные ячейки и сперва для них путь строить, а потом уже внутри более точно.

    P.S. не сразу заметил про JS. Может и пару секунд искать будет на полной карте (у меня недоверие к JS). Если сперва искать по укрупнённой матрице, то будет мгновенно искать. Например, сделать 500*500 размер и предрасчитать возможность перехода из ячейки в соседнии. Сперва искать по укрупнённой, а потом уже по полной, используя только выбранные ячейки.
  • Как использовать forward declaration?

    maaGames
    @maaGames
    Inspector Due, Можно. Но это плохой пример надмозга.

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

    class B;
    
    class A
    {
            B * pointer_B;
    };
    
    class B
    {
          A * pointer_A;
    };
  • Как правильно экспортировать в GIF?

    maaGames
    @maaGames
    Эдуард, "палитры" это где "селективная". "Потери" это правый нижний окошко с надписью "потери". Это чтобы сжатие с потерями было.
    Самое главное, дизеринт со "случайное" попробуй переключить на "шаблонное" или вообще выключи. Для сжатия нет ничего хуже случайностей.
  • Как оптимизировать рисование в SFML Image?

    maaGames
    @maaGames
    DeOxygen, Теоретически, можно ещё больше ускорить, если создать список из полигонов, описывающих положение кисти в каждом шаге и потом этот список нарисовать за один drawing call. Н отут уже потратится время на создание списка вершин и списа треугльников, так что я не буду утверждать, что это будет быстрее работать, чем один и тот же спрайт по разным координатам рисовать.
  • Как оптимизировать рисование в SFML Image?

    maaGames
    @maaGames
    DeOxygen, Я ещё сразу не сказал, т.к. это показалось очевидным: текстура-холст - это буфер для offscreen rendering. Т.к. холст может быть больше/меньше окна приложения, то рисовать надо в offscreen буфере и уже потом его вводить на экран с любым масштабом и положением.
  • Как оптимизировать рисование в SFML Image?

    maaGames
    @maaGames
    DeOxygen, Текстура кисти рисуется белым цветом, чтобы при выводе текстуры на холст можно было задать цвет примеси. Цвет умножится на цвет текстуры. Если текстура изначально белая, то в результате нарисуется кружок заданного цвета с учётом прозрачности кисти.
  • Как оптимизировать рисование в SFML Image?

    maaGames
    @maaGames
    DeOxygen, Холст - текстура, на которой сейчас рисуете (24 бит, без Z буфера). Её не очищаете и рисуете как рисовали и прежде. Вторая текстура - изначально прозрачная, в ней рисуется кисть белого цвета (допустим, кружок с размытыми краями, как в фотошоп). В фукнции drawLine вместо рисования в цикле ij рисуешь текстуру кисти 'k' раз в цикле по steps.
  • Как оптимизировать рисование в SFML Image?

    maaGames
    @maaGames
    DeOxygen, Как куда? Сменили инструмент (изменили размер) - удалили текстуру кисти. Текстура кисти один раз создаётся при задании размера. Т.е. хоть месяц непрерывно рисуй одной кистью и она в памяти всего один раз будет создана.
  • Как правильно перегрузить оператор ввода?

    maaGames
    @maaGames
    И где текст ошибки с которой вылетает? Точно проблема не в операторе сравнения "10/8 == 5/4"?
  • Что за ":" в С++?

    maaGames
    @maaGames
    Евгений Шатунов, Про список инициализации в конструкторе не забываем.
  • Как сортировать вектор строк?

    maaGames
    @maaGames
    Vladimir S, Есть более продвинутый. Для сравнения использовать регулярное выражение, разбивать название на "цифры" и "не цифры". Не цифры сравнивать посимвольно, а цифры преобразовывать в int и сравнивать уже их. Так можно будет сравнивать названия, в которых цифры в любом месте могут находиться.
  • Как заставить заработать драйвер для виндовс 7 на виндовс 10?

    maaGames
    @maaGames
    Land-Maze, В настройках драйвера есть кнопка калибровки? Может просто откалибровать нужно.
  • Как сделать так, чтобы вместо одного клика по стандарту был двойной?

    maaGames
    @maaGames
    Костыли-костылями, но может на одиночный клик повесить событие двойного клика?
  • Как узнать причину диких тормозов системы, включая окна и даже курсор мыши?

    maaGames
    @maaGames
    Eugene, монитор ресурсов запустить и оставить открытым в ожидании появления тормозов. И тогда уже смотреть.
    Если тормоза всё-время появлялись примерно в одно и то же время, то это похоже на какие-то запланированные служебные действи, типа индексирования, дефрагментации и обновлений. В общем, оставляй открытым монитор ресурсов и жди тормозов.
  • Как узнать причину диких тормозов системы, включая окна и даже курсор мыши?

    maaGames
    @maaGames
    Eugene, Это хороший признак! Есть шанс, что вируса нет, раз никто не пытался избавиться от антивируса.
    В диспетчере задач на вкладе "производительость" есть ссылка для открытия мониора ресурсов. Нужно открыть монитор и закрыть диспетчер задач. В мониоре рисуются графики загрузки и процессора и всего прочего и можно увидеть, какое конкретно приложение грузит. Главное закрыть диспетчер задач, чтобы если его приложение какое-то проверяет, чтобы перестало проверять.
  • Как узнать причину диких тормозов системы, включая окна и даже курсор мыши?

    maaGames
    @maaGames
    Eugene, Раз не поьзуетесь антивирусами, то хватит любого "одноразового" сканера, типа CureIt или Касперского.
    На самом деле, шансов мало, если вирус хорошо написан. Зато, если антивирус не скачается (самоудалится сразу после скачивания) или не запустится, то это 100% гарантия заражения.
  • Восстановление окружности по массиву точек её части?

    maaGames
    @maaGames
    В идеале, для каждой комбинации из трёх точек построить окружности, отбросить те, которые сильно отличаются и усреднить оставшиеся.
  • Redmibook 16 на райзен или интел?

    maaGames
    @maaGames
    DevMan, Это да. Я двухядерный (4 потока) взял ноут, как раз потому что на ноуте мне больше было не надо, при этом мощность ниже и чуть дольше работает не греясь.
  • Redmibook 16 на райзен или интел?

    maaGames
    @maaGames
    DevMan, ТС явно написал, что для "сложной работы с кодом" :) В любом случае, у Райзена и на ядро частота выше и турбо-буст выше и IPC выше. Есть подозрение, что цена при этом ниже.
    Вообще, сейчас на Интел брать есть смысл только ради матрицы, почему-то с Райзеном гораздо меньше выбор хороших экранов. Или так было, когда я на Райзене ноут брал, а теперь уже расширили ассотимент - не проверял за ненадобностью.