Как да нарисувате спрайт в 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)))
}

(поставете този код в събитието за теглене и променете "sprite" на вашия спрайт)

актуализация:

Кодът по-горе работи само в студио за създаване на игри, за версия 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