Bueno, ahora viene la pregunta del millon, esto ya es nivel avanzado, a ver si entre todos podemos conseguirlo.

El caso esta, en que estoy dibujandole una sombra a una caja, de momento todo perfecto.

La sombra, se dibuja, respecto a la luz que le da, todo bien.

Pero la sombra es uniformemente infinita. Lo que me gustaria darle es un degradado en alpha a medida que la distancia de la sombra aumenta desde su punto de partida.

Entonces, esto como podria hacerse???

Os dejo el codigo del draw;

draw_set_colour(c_black);
draw_set_alpha(0.20);

if (linterna)
{
    draw_triangle(x,y,x+lengthdir_x(1000,point_lt),y+lengthdir_y(1000,point_lt),x+30+lengthdir_x(1000,point_rt),y+lengthdir_y(1000,point_rt),0)
    draw_triangle(x,y,x+30+lengthdir_x(1000,point_rt),y+lengthdir_y(1000,point_rt),x+30,y,0)
    draw_triangle(x,y+30,x+lengthdir_x(1000,point_ld),y+30+lengthdir_y(1000,point_ld),x+30+lengthdir_x(1000,point_rd),y+30+lengthdir_y(1000,point_rd),0)
    draw_triangle(x,y+30,x+30,y+30,x+30+lengthdir_x(1000,point_rd),y+30+lengthdir_y(1000,point_rd),0)
    draw_triangle(x,y+30,x,y,x+lengthdir_x(1000,point_lt),y+lengthdir_y(1000,point_lt),0)
    draw_triangle(x,y+30,x+lengthdir_x(1000,point_ld),y+30+lengthdir_y(1000,point_ld),x+lengthdir_x(1000,point_lt),y+lengthdir_y(1000,point_lt),0)
    draw_triangle(x+30,y+30,x+30,y,x+30+lengthdir_x(1000,point_rd),y+30+lengthdir_y(1000,point_rd),0)
    draw_triangle(x+30,y,x+30+lengthdir_x(1000,point_rt),y+lengthdir_y(1000,point_rt),x+30+lengthdir_x(1000,point_rd),y+30+lengthdir_y(1000,point_rd),0)
   
    draw_rectangle(x,y,x+30,y+30,1);
}


draw_set_alpha(1);


Espero entre todos darle una solucion, muchas gracias de ante mano.  ;)
PCNONOGames  www.pcnono.es

Se puede hacer un degradado de transparencia con draw_vertex_color.
Primero me gustaría entender cómo se construye la figura, sube un diagrama o explica el significado las variables point_