| | afficher un eclair | |
| | Auteur | Message |
---|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: afficher un eclair Lun 16 Juin 2008 - 19:19 | |
| voila un script pour simuler un eclair que je viens de faire: - Spoiler:
- Code:
-
x_dep = argument0 y_dep = argument1 x_fin = argument2 y_fin = argument3 apply=argument4 long=argument5
x_inter=x_dep y_inter=y_dep x_inter2=x_dep y_inter2=y_dep
draw_set_color(argument6) while(point_distance(x_inter,y_inter,x_fin,y_fin)>10) { dir=point_direction(x_inter,y_inter,x_fin,y_fin) dir+=-apply+random(apply*2)
x_inter2=x_inter+lengthdir_x(long,dir) y_inter2=y_inter+lengthdir_y(long,dir)
draw_line(x_inter,y_inter,x_inter2,y_inter2) x_inter=x_inter2 y_inter=y_inter2
}
le principe est de tracé une succession de petite ligne qui sont toute relié pour en formé une grande chaque partie prend un angle + ou - aléatoire se qui fait grésillé la grande droite pour l'utiliser on doit mettre dans draw (si vous appeler votre script draw_eclair) draw_eclair(xdebut,y_debut,x_fin,y_fin,taux_gresillement,longeur_des_petites_ligne,couleur) exemple draw_eclair(x,y,100,100,90,4,c_yellow) on peut aussi faire des spirale ou d'autre forme de droite en changeant dans le code: dir+=-apply+random(apply*2) par dir+=45 par exemple. Edit: le meme mais avec des ligne plus ou moins épaisse - Spoiler:
- Code:
-
x_dep = argument0 y_dep = argument1 x_fin = argument2 y_fin = argument3 apply=argument4 long=argument5 largeur=argument7
x_inter=x_dep y_inter=y_dep x_inter2=x_dep y_inter2=y_dep
draw_set_color(argument6) while(point_distance(x_inter,y_inter,x_fin,y_fin)>10) { dir=point_direction(x_inter,y_inter,x_fin,y_fin) dir+=-apply+random(apply*2)
x_inter2=x_inter+lengthdir_x(long,dir) y_inter2=y_inter+lengthdir_y(long,dir)
draw_line_width(x_inter,y_inter,x_inter2,y_inter2,largeur) x_inter=x_inter2 y_inter=y_inter2
}
// le principe est de tracé une succession de petite ligne qui sont toute relié pour en formé une grande //chaque partie prend un angle + ou - aléatoire se qui fait grésillé la grande droite
on rajoute juste le parametre de la largeur a la fin ex: draw_eclair_width(x,y,100,100,90,4,c_yellow,2) IMAGE: bon faut imaginer le scintillement
Dernière édition par arthuro le Lun 16 Juin 2008 - 21:11, édité 4 fois |
| | | edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: afficher un eclair Lun 16 Juin 2008 - 20:10 | |
| pas mal comme script , ca marche plutot bien Tu devrais ajouter une option pour changer la largeur de l eclair et ajoute des screens pour qu on ait envie de tester le script |
| | | Malax Utilisateur confirmé: Rang **
Messages : 496 Localisation : Aix-en-Provence Projet Actuel : Lemmings Struggle (abandonné)
| Sujet: Re: afficher un eclair Lun 16 Juin 2008 - 20:13 | |
| Vous pouvez faire de beaux effets de rayons lasers comme ça, c'est vrai que l'epaisseur manque d'autant plus que la fonction est tout prête et n'attends plus qu'on l'utilise ^^ |
| | | yano Utilisateur confirmé: Rang **
Messages : 488 Projet Actuel : SCR Keiko Shoot them up 3D vertical.
| Sujet: Re: afficher un eclair Lun 14 Juil 2008 - 12:23 | |
| - Spoiler:
- Code:
-
/* Draw Lightning Script Ben Grabau 2007 */ var x1,x2,y1,y2,split_frq,dir,dir2,xx,yy,xfat,yfat; // Self explanatory: // Set the position for the to and from "zaps" x1=argument0 y1=argument1 x2=argument2 y2=argument3 // between 3 & 10 works best (higher number = faster, less effect) // this number is also the minimum draw distance // please, no less than 1 split_frq=argument4 // DO NOT EDIT BELOW THIS LINE... OR ELSE! lol while point_distance(x1,y1,x2,y2)>=split_frq { dir = point_direction(x1,y1,x2,y2); dir2 = dir - 45 + random(90) xx=lengthdir_x(split_frq,dir2) yy=lengthdir_y(split_frq,dir2) xfat=lengthdir_x(split_frq+1,dir2) yfat=lengthdir_y(split_frq+1,dir2) /* LINE DRAWING */ draw_set_color($FF8000) draw_set_alpha(.4) draw_line_width(x1,y1,x1+xfat,y1+yfat,5) draw_line_width(x1,y1,x1+xfat,y1+yfat,10) draw_set_color(c_white) draw_set_alpha(.5) draw_line_width(x1,y1,x1+xx,y1+yy,3) draw_set_alpha(1) draw_line(x1,y1,x1+xx,y1+yy) /* END LINE DRAWING */ x1=x1+xx y1=y1+yy } Draw event: - Code:
-
/* arg0=x1 arg1=y1 arg2=x2 arg3=y2 arg4=quality arg5=primitive arg6=electricity-color arg7=glow-color arg8=glow radius arg9=shakivness arg10=glow alpha */
electricity_draw(512,384,mouse_x,mouse_y,8,pr_linestrip,merge_color(c_blue,c_white,.2+random(.3)),c_blue,20,10,0.1)
Le plus beau que j'ai vu, quand je vois ça, j'ai vraiment envie d'utiliser ce genre de script pour mon jeu, même s'il me semble que ça doit être plus lourd qu'un sprite non? En tous cas c'est visuellement bien plus interessant qu'un sprite même très beau. Si vous êtes capable de faire des laser etc avec ce genre de script de particules allez-y!! Ca ferait un beau pack
Dernière édition par yano le Lun 14 Juil 2008 - 13:24, édité 1 fois |
| | | jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: afficher un eclair Lun 14 Juil 2008 - 12:46 | |
| oooh tres interessant je garde ce topic en memoire, deja que j'avais essayé de faire un truc similaire (et echoué lamentablement T_T) |
| | | Contenu sponsorisé
| Sujet: Re: afficher un eclair | |
| |
| | | | afficher un eclair | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |