Skip to content

draw_sprite

Rushan Mukhutdinov edited this page Mar 3, 2025 · 3 revisions

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


Эта функция выводит указанный спрайт и его подизображение (кадр) в определённую позицию внутри комнаты. В качестве спрайта можно использовать переменную экземпляра sprite_index, чтобы отрисовать текущий спрайт, назначенный экземпляру, или любой другой спрайт из ассетов проекта. То же самое касается подизображения: вы можете указать переменную image_index, чтобы взять текущий кадр анимации, либо использовать конкретное число для вывода нужного подизображения выбранного спрайта.

Если число, заданное для подизображения, превышает фактическое количество кадров спрайта, GameMaker автоматически зацикливает его. Например, если у спрайта 5 кадров (пронумерованные как от 0 до 4), а вы указали подизображение 7, будет выведен кадр с индексом 2. Наконец, координаты x и y определяют, где в комнате будет нарисован спрайт. При этом спрайт центрируется по смещениям sprite_xoffset и sprite_yoffset.

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

Синтаксис

draw_sprite(sprite, subimg, x, y);
Аргумент Тип Описание
sprite Спрайтовый ассет Спрайт, который нужно отрисовать
subimg Вещественное число Номер подизображения (кадра) спрайта (может быть image_index или -1 для текущего кадра анимации в объекте).
x Вещественное число Координата x, где нужно нарисовать спрайт
y Вещественное число Координата y, где нужно нарисовать спрайт

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

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

Пример

draw_sprite(sprite_index, image_index, x, y);
draw_sprite(spr_Halo, 0, x, y - 32);

В этом примере сначала выводится спрайт экземпляра (sprite_index) с текущим подизображением (image_index) по координатам x и y. Затем поверх него на 32 пикселя выше рисуется первый кадр спрайта spr_Halo.


Clone this wiki locally