Не все знают об этой возможности , но вместо рисования полигона для спрайта вручную, это можно сделать через меню спрайта .
Но гораздо практичнее, особенно если у вас много разных спрайтов, делать полигоны через код.
Класс Bitmap дает нам возможность создать полигон на основе альфа канала спрайта при помощи метода opaque_to_polygons()
Соберем наглядную сцену.
Добавляем в сцену спрайт. И подключаем скрипт.
Для того чтобы всё сработало нам потребуется два обьекта :
Image и BitMap.
Загружаем в image наш спрайт из которого надо взять данные прозрачности.
И далее получаем из спрайта битмап.
Битмап - по сути массив точек, где прозрачное это false а прозрачное true.
(проверяется через метод get_bit())
Далее через этот битмап и через метод opaque_to_polygons получаем массив точек который можем использовать в работе с полигоном.
Если запустить код то получится вот такая картина
Второй агрумент в методе opaque_to_polygons отвечает за «качество» полигона. К примеру если накрутить вместо 1.0 - 5.0, то получим гораздо меньше полигонов.
На этом наверное и всё.
В примере выше я рисовал обычный полигон, но обычно это используется для рисования масок коллизий.
Надеюсь информация была полезной.
Подписывайтесь на канал, вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !