Найти в Дзене
Игровой движок Godot engine

№170. GODOT 4. Создание полигона из альфа канала спрайта.

Не все знают об этой возможности , но вместо рисования полигона для спрайта вручную, это можно сделать через меню спрайта .

-2

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

Класс Bitmap дает нам возможность создать полигон на основе альфа канала спрайта при помощи метода opaque_to_polygons()

-3

Соберем наглядную сцену.
Добавляем в сцену спрайт. И подключаем скрипт.

-4

Для того чтобы всё сработало нам потребуется два обьекта :
Image и BitMap.
Загружаем в image наш спрайт из которого надо взять данные прозрачности.
И далее получаем из спрайта битмап.

-5

Битмап - по сути массив точек, где прозрачное это false а прозрачное true.
(проверяется через метод
get_bit())

Далее через этот битмап и через метод opaque_to_polygons получаем массив точек который можем использовать в работе с полигоном.

-6

Если запустить код то получится вот такая картина

-7

Второй агрумент в методе opaque_to_polygons отвечает за «качество» полигона. К примеру если накрутить вместо 1.0 - 5.0, то получим гораздо меньше полигонов.

-8

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

-9

Надеюсь информация была полезной.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !