Как нарисовать спрайт в Game Maker с постепенно увеличивающейся альфой (непрозрачностью)?

Мне нужно нарисовать спрайт в Game Maker, где непрозрачность (альфа) рисуемого спрайта является градиентом, а не фиксированным значением.

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


person Awol    schedule 05.12.2013    source источник


Ответы (1)


Это легко сделать, применив градиент к спрайту в редакторе в меню изображение -> градиент. Если вы хотите сделать это в коде, единственный способ, который я могу придумать, это:

for (_t = 0;_t < sprite_get_width(sprite);_t ++){
    draw_sprite_part_ext(sprite,0,_t,0,_t+1,sprite_get_height(sprite),x+_t,y,1,1,c_white,_t/(sprite_get_width(sprite)))
}

(поместите этот код в событие рисования и измените «спрайт» на свой спрайт)

обновление:

Приведенный выше код работает только в Game Maker Studio, для Game Maker версии 8.0 или ниже измените код на:

for (_t = 0;_t < sprite_get_width(sprite);_t +=1 ){
    draw_sprite_part_ext(sprite,0,_t,0,1,sprite_get_height(sprite),x+_t,y,1,1,c_white,_t/(sprite_get_width(sprite)))
}
person Gibby    schedule 06.12.2013
comment
Этот код создает растянутое изображение, которое почти в два раза больше исходной ширины. Я думаю, что это как-то связано с параметром ширины функции рисования. Я не мог понять, что, хотя. - person Awol; 07.12.2013