lastuniverse
@lastuniverse
Всегда вокруг да около IT тем

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

На картинках примеры спрайтлистов с визуализированными круглыми коллайдерами заданными как координаты центра круга и его радиус.

спрайтлисты

6195a33e90c68448206014.png
6195a3711c18d067709946.png
6195a3a049fed585173604.png
6195a3c6e0e0d678545890.png
6195a3e038e90954641892.png


Зеленый круг это visible cillider, остальные это hit cillider.

У кого какие идеи есть как програмно проанализировав спрайт рассчитать такие коллайдеры ?

6195a4712d38f866548442.png
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@MarkusD
все время мелю чепуху :)
Существует семейство алгоритмов под названием Convex Hulling, позволяющих с требуемой точностью обернуть изображение в примитив.
Полученный контур примитива уже можно использовать для заполнения коллайдерами, тоже с требуемой точностью.
Для заполнения примитива коллайдерами может подойти алгоритм из семейства Bin Packing. Они позволяют учитывать перекрытие и неточность заполнения контура.
В результате, при подборе реализаций и при подстройке критериев ты можешь получить результат, сравнимый с приведенными на изображениях.

Однако, лично я рекомендовал бы остановиться уже на контуре примитива изображения. Если это все действительно коллайдеры, то проверка одного замкнутого многоугольника будет дешевле проверки потенциально бесконечной коллекции окружностей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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