Is Daouda Utilisateur confirmé: Rang **
Messages : 396 Localisation : ...
| Sujet: scripts light Sam 29 Nov 2014 - 18:49 | |
| salut tout le monde voici un scripte qui vous permet de faire un effet lumière et il est très facile a utiliser suivez seulement les instructions dans le scripte. - aperçu:
pour avoir le meme effet de l'image au dessu utiliser ce genre de Sprite - aperçu:
- code:
- Code:
-
/* arument0 a 0 pour initialisé les fonction du scripts arument1 a 1 quand vous utilisez la view et 0 pour non (room sans view)
exemple : initialisation ->Lighting_scripts(0,1); si vous utilisez la view ->Lighting_scripts(0,0); si vous n'utilisez pas la view
pour utiliser l'effet lumiere mettez sa dans room_start ou autre evenement ->Lighting_scripts(1);
utilser se code pour desactiver l'effet lumiere (permet de liberer la memoire consommé) ->Lighting_scripts(-1);
mettez se code dans room start d'un objet persisitant si vous utiliser un sprite qui dessine la lumiere:
sprite_set_alpha_from_sprite(le sprite,le sprite);
pour utilser un sprite comme lumiere effacer les codes précédé de ce signe: //***** et éffacer aussi //----> situé devant la fonction draw sprite(...)
N'OUBLIER PAS DE DECLARER LES OBJET SUR LEQUEL LA LUMIERE SERA DESSINER Dans ev STEP ligne Constructeur "With" pour utliser plusieurs objets vous pouvez utilisé le mot clé "all" ou faire plusieurs copies du code:
exemple:
************************** with (objet1) { if (depth>=global.obj_surface.depth) depth=(global.obj_surface.depth-1); draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); }
with (objet2) { if (depth>=global.obj_surface.depth) depth=(global.obj_surface.depth-1); draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); }
with (jusqu'a objet n) { if (depth>=global.obj_surface.depth) depth=(global.obj_surface.depth-1); draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); } *************************** */
{ if (argument0=0) { if (!variable_global_exists("obj_surface")) { global.obj_surface=object_add();
//evenement CREATE object_event_add(global.obj_surface,ev_create,0, " if (global.surface_on=0) { s_width=room_width+30; s_height=room_height+30; } else { s_width=view_wview[0]+30; s_height=view_hview[0]+30; }
global.b_surface=surface_create(s_width,s_height); surface_set_target(global.b_surface); draw_clear_alpha(c_black,1); surface_reset_target(); ");
//evenement STEP object_event_add(global.obj_surface,ev_step,0, " if (surface_exists(global.b_surface)) { surface_set_target(global.b_surface); draw_clear_alpha(c_black,1); draw_set_blend_mode(bm_subtract);
if (global.surface_on=0) { with (//objet) //NOM DE VOTRE OBJET SUR LEQUEL LA LUMIERE SERA DESSINNEE// { draw_set_color(c_white); //*****// draw_set_alpha(0.1); //*****//
if (depth>=global.obj_surface.depth) depth=(global.obj_surface.depth-1);
for (i=50;i>0;i-=5) //*****// { draw_circle(x,y,100-i,0); }
//----> draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);
draw_set_alpha(1); //*****// } } else { with (//objet) //NOM DE VOTRE OBJET SUR LEQUEL LA LUMIERE SERA DESSINNEE// { if (point_distance(x,y,(view_xview[0]+view_wview[0]/2),y)<view_wview[0]/2 && point_distance(x,y,x,(view_yview[0]+view_hview[0]/2))<view_hview[0]/2) { draw_set_color(c_white); //*****// draw_set_alpha(0.1); //*****//
if (depth>=global.obj_surface.depth) depth=(global.obj_surface.depth-1);
for (i=50;i>0;i-=5) //*****// { draw_circle(point_distance(x,y,view_xview[0],y),point_distance(x,y,x,view_yview[0]),100-i,0); }
//----> draw_sprite_ext(sprite_index,image_index,point_distance(x,y,view_xview[0],y),point_distance(x,y,x,view_yview[0]),image_xscale,image_yscale,image_angle,image_blend,image_alpha);
draw_set_alpha(1); //*****// } } }
draw_set_blend_mode(bm_normal); surface_reset_target(); } ");
//evenement DRAW object_event_add(global.obj_surface,ev_draw,0, " if (surface_exists(global.b_surface)) { if (global.surface_on=0) { draw_surface(global.b_surface,0,0); } else { draw_surface(global.b_surface,view_xview[0],view_yview[0]); } } ");
//evenement DESTROY (permet de liberer la surface) object_event_add(global.obj_surface,ev_destroy,0, " if (surface_exists(global.b_surface)) { surface_free(global.b_surface); } "); }
global.surface_on=argument1; }
//créé l'objet if (argument0=1) { if (!instance_exists(global.obj_surface)) instance_create(0,0,global.obj_surface); }
//détruire la surface if (argument0=-1) { if (instance_exists(global.obj_surface)) with (global.obj_surface) instance_destroy(); } }
|
|