Skip to content

draw_sprite_ext

Rushan Mukhutdinov edited this page Mar 3, 2025 · 1 revision

Оригинальная статья.


Эта функция работает так же, как draw_sprite, но дополнительно позволяет изменять масштаб, цветовую заливку, угол поворота и прозрачность отрисовываемого спрайта. Изменения этих значений никак не затрагивают исходный ресурс — меняется только то, как спрайт отображается. Для всех аргументов можно использовать переменные, связанные со спрайтом. На изображении ниже показано, как различные параметры влияют на вывод спрайта:

Примечание: не рекомендуется использовать смешивание цветов на HTML5 при выключенном WebGL. Без WebGL установка цвета смешения по-прежнему возможна, но GameMaker при этом создаёт копию спрайта и помещает её в кэш, что при постоянных изменениях цвета может сильно повлиять на производительность. Если вы не хотите включать WebGL, можно уменьшить влияние этого эффекта, настроив размер кэша спрайтов с помощью функции sprite_set_cache_size().

Примечание: при использовании спрайтов со скелетной анимацией эта функция может работать некорректно, отображая только первый кадр стандартной позы. В таких случаях следует применять функции вида draw_skeleton_*.

Синтаксис

draw_sprite_ext(sprite, subimg, x, y, xscale, yscale, rot, colour, alpha);
Аргумент Тип Описание
sprite Спрайтовый ассет Спрайт, который нужно отрисовать
subimg Вещественное число Индекс подизображения (кадра) спрайта (можно использовать image_index или -1 для текущего кадра анимации экземпляра)
x Вещественное число Координата x, где нужно нарисовать спрайт
y Вещественное число Координата y, где нужно нарисовать спрайт
xscale Вещественное число Горизонтальный масштаб (1 = без изменений, 0.5 = вдвое меньше и т. д.)
yscale Вещественное число Вертикальный масштаб (1 = без изменений, 0.5 = вдвое меньше и т. д.)
rot Вещественное число Угол поворота спрайта (0 = без поворота, 90 = поворот на 90° против часовой стрелки и т.д.)
colour Цвет Цвет, которым будет залит спрайт (например, c_white для вывода без изменений)
alpha Вещественное число Прозрачность (0 = полностью прозрачно, 1 = непрозрачно)

Возвращаемое значение

(Функция не возвращает никаких значений.)

Пример

draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);

Данный пример отрисовывает спрайт экземпляра со всеми параметрами по умолчанию (по сути, то же самое, что вызов draw_self).