Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: hardraid en Marzo 19, 2010, 03:26:09 PM

Título: Efecto Blur(nublado) Version Nueva
Publicado por: hardraid en Marzo 19, 2010, 03:26:09 PM
Creador:HardRaid
Version GM:  :GM8: :GM7:
Descripcion: Bueno la mayoria ya conoce el efecto blur no hay mucho que explicar lo que hace este script es nublar un sprite, cuanto mayor cantidad(argument0) mas nublado se va a ver. el codigo es simple pero puede optimizarse, pueden postear aqui y yo lo actualizo. DEJO UN EJEMPLO ADJUNTO DE DESENFOQUE(Modificado).
Codigo:


//Version modificada
//scr_blur(cantidad);
if(!variable_local_exists("sup")){sup=surface_create(sprite_width+(argument0*2),sprite_height+(argument0*2));}
surface_set_target(sup);
xx=surface_get_width(sup)/2;
yy=surface_get_height(sup)/2;
draw_sprite_ext(sprite_index,image_index,xx,yy,image_xscale,image_yscale,image_angle,image_blend,1);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy-argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx+argument0,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx,yy-argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx,yy+argument0,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx+argument0,yy,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_sprite_ext(sprite_index,image_index,xx-argument0,yy,image_xscale,image_yscale,image_angle,image_blend,1/8);
draw_set_blend_mode_ext(bm_one,bm_one);
draw_sprite_ext(sprite_index,image_index,xx,yy,image_xscale,image_yscale,image_angle,c_black,1);
draw_set_blend_mode(bm_normal);
surface_reset_target();
draw_surface(sup,x-xx,y-yy);


(http://s3.subirimagenes.com:81/imagen/previo/thump_4231657blur.png)

*El ejemplo adjunto muestra un efecto de desenfoque en objetos a cierta distancia como lo hace la vision humana y seguro la de la mayoria de los animales.
Título: Re: Efecto Blur(nublado)
Publicado por: Ciberman en Marzo 19, 2010, 03:38:20 PM
bueno, muy bueno

pero un problemita

el script del ejemplo no es el mismo que el de tu post :-[
el del ejemplo da un semiefecto blur pero no funciona con transparencias

el del post si sirve, pero no da un tan lindo efecto con sprites sueltos , habr?a que probarlo sacandole una foto a la pantalla en cada step... se me ocurre otro efecto blur para pantalla completa, pero en pantallas chicas porque gastar?a muchos recursos

que tal si sacas una foto (foto1)
dibujas (foto1)
siguiente step: sacas foto2
dibujas (foto1 - alpha 1; foto2 - Alpha .5)
siguiente step: sacas foto3
dibujas (foto1 - alpha 1; foto2 - Alpha .6; foto2 - Alpha .3)

de ahi en mas eliminas la foto 1 corres de variable las foto 2 y 3 y sacas una nueva foto 3

no?

gastar?a recursos como loco claro :-[ xD
Título: Re: Efecto Blur(nublado)
Publicado por: hardraid en Marzo 19, 2010, 03:43:47 PM
lo hice simple, hay q afilarlo un poco en eso estoy, ya probe lo de pantalla competa y salio bien pero lento XD y si el ejemplo es del script  XD de q va a ser sino?

EDT:ah no perdon jajajajaja me equivoque de archivoooo ese era otro blur q hice pero es muyyyy lento.
Título: Re: Efecto Blur(nublado)
Publicado por: rodo16 en Marzo 20, 2010, 06:13:58 PM
gasta muchos recursos el script?

es que el juego que estoy haciendo ya es lento de por si(120 enemigos x room y hasta 200 aveces) como para lentificarlo mas
Título: Re: Efecto Blur(nublado)
Publicado por: Ciberman en Marzo 20, 2010, 08:34:46 PM
y... si, gasta muchos recursos porque debes sacar una foto y
se dibuja unas 9 veces... deber?as intentar desactivar instancias y ahi puedes usar el script... tambien tratar de dibujar los tiles solo que se veran...
pero es bueno el script y sencillo
Título: Re: Efecto Blur(nublado)
Publicado por: rodo16 en Marzo 24, 2010, 09:04:27 PM
no seria mas eficiente si se usaran surfaces.lo digo porque lo vi en un ejemplo, pero no lo entend? del todo.creo que usaba 2 surfaces o algo as?
Título: Re: Efecto Blur(nublado)
Publicado por: sergiofcb95 en Mayo 12, 2010, 06:45:57 PM
No me lo abre el  :GM8:

Me pone error, y me lo borra el antivirus Panda2010...

Tu sabras...
Título: Re: Efecto Blur(nublado) Version Nueva
Publicado por: hardraid en Junio 22, 2010, 05:14:47 AM
Nueva version lijeramente modificada, ahora funciona con superficies.
Título: Re: Efecto Blur(nublado) Version Nueva
Publicado por: Wadk en Junio 25, 2010, 03:24:23 AM
Yo no asignar?a variables locales en un script. Se me ocurre que el script podr?a recibir un segundo argumento que contenga el id de una surface creada anteriormente fuera del script.
Fuera de eso, est? bueno, queda bien el efecto.