В данной статье пробежимся по основным «проблемным» местам метода blend_rect.
Альфа канал
Наверное первое, что скорее всего вас побеспокоит - игнорирование альфа канала спрайта на котором вы собственно «рисуете» другие спрайты.
Это легко лечится через шейдер. Всё что вам нужно - просто подать альфа канал с оригинального спрайта.
Например вот так:
Далее про поворот.
По умолчанию ось трансформаций это левый верхний угол. Посему для того чтобы вращать спрайт вокруг своего центра мы выставляем галочку Centered
Но если теперь запустить проект и попытаться никидать следы пуль получим не совсем то что хотелось :
Они стали появляться не там где находится наш курсор. И это можно обьяснить тем, что когда мы берем локальные координаты мышки , мы отталкиваемся от центра трансформаций . А они в нашем текущем случае сдвинуты в центр.
Пропишем этот сдвиг в коде и всё станет работать как нам нужно.
Поворот «впечатываемого» спрайта.
Тут нас немного обделили.
Крутить image как нам захочется увы нельзя. По крайней мере методами которые есть…а есть тут только поворот на 90 и 180 градусов.
Возможно как то можно брать весь массив пикселей , крутить их через get\set pixels.. или шейдер. Если у вас есть подобное решение - пишите в комментарии.
Сохранение в файл.
Допустим нам надо чтобы следы оставались в игре всегда.
Мы можем сохранить результат как файл, в последствии вернувшись в игру загрузить обратно.
Для этого есть куча методов
Это наверное и всё что я хотел упомянуть.
Удачи в разработке!