Je trouvais cela déplaisant de ne pas pouvoir créer des lignes avec une largeur dans GM6 comme on peut le faire dans GM7.
Alors voici trois script fait par mes soins
:
//Écrit par CoDeAVE
//
//draw_line_width(x1,y1,x2,y2,width)
{
var line_dir,x1,x2,y1,y2,w;
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
w=argument4*0.5;
if (w==1){
draw_line(x1,y1,x2,y2);
exit
}
line_dir=point_direction(x1,y1,x2,y2);
draw_primitive_begin(pr_trianglestrip);
draw_vertex(x1+lengthdir_x(w,line_dir-90),y1+lengthdir_y(w,line_dir-90));
draw_vertex(x2+lengthdir_x(w,line_dir-90),y2+lengthdir_y(w,line_dir-90));
draw_vertex(x1+lengthdir_x(w,line_dir+90),y1+lengthdir_y(w,line_dir+90));
draw_vertex(x2+lengthdir_x(w,line_dir+90),y2+lengthdir_y(w,line_dir+90));
draw_primitive_end();
}
//Écrit par CoDeAVE
//
//draw_line_width_color(x1,y1,x2,y2,width,col1,col2)
{
var oc,line_dir,x1,x2,y1,y2,w,col1,col2;
oc=draw_get_color();
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
w=argument4*0.5;
col1=argument5;
col2=argument6;
if (w==1){
draw_line_color(x1,y1,x2,y2,col1,col2);
exit
}
line_dir=point_direction(x1,y1,x2,y2);
draw_set_color(c_white);
draw_primitive_begin(pr_trianglestrip);
draw_vertex_color(x1+lengthdir_x(w,line_dir-90),y1+lengthdir_y(w,line_dir-90),col1,1);
draw_vertex_color(x2+lengthdir_x(w,line_dir-90),y2+lengthdir_y(w,line_dir-90),col2,1);
draw_vertex_color(x1+lengthdir_x(w,line_dir+90),y1+lengthdir_y(w,line_dir+90),col1,1);
draw_vertex_color(x2+lengthdir_x(w,line_dir+90),y2+lengthdir_y(w,line_dir+90),col2,1);
draw_primitive_end();
draw_set_color(oc);
}
//Écrit par CoDeAVE
//
//draw_line_width_color_ext(x1,y1,x2,y2,width,col1,alpha1,col2,alpha2)
{
var oc,line_dir,x1,x2,y1,y2,w,col1,col2,alpha1,alpha2;
oc=draw_get_color();
x1=argument0;
y1=argument1;
x2=argument2;
y2=argument3;
w=argument4*0.5;
col1=argument5;
alpha1=argument6;
col2=argument7;
alpha2=argument8;
if (w==1){
draw_line_color(x1,y1,x2,y2,col1,col2);
draw_primitive_begin(pr_linelist);
draw_vertex_color(x1,y1,col1,alpha1);
draw_vertex_color(x2,y2,col2,alpha2);
draw_primitive_end();
exit
}
line_dir=point_direction(x1,y1,x2,y2);
draw_set_color(c_white);
draw_primitive_begin(pr_trianglestrip);
draw_vertex_color(x1+lengthdir_x(w,line_dir-90),y1+lengthdir_y(w,line_dir-90),col1,alpha1);
draw_vertex_color(x2+lengthdir_x(w,line_dir-90),y2+lengthdir_y(w,line_dir-90),col2,alpha2);
draw_vertex_color(x1+lengthdir_x(w,line_dir+90),y1+lengthdir_y(w,line_dir+90),col1,alpha1);
draw_vertex_color(x2+lengthdir_x(w,line_dir+90),y2+lengthdir_y(w,line_dir+90),col2,alpha2);
draw_primitive_end();
draw_set_color(oc);
}