0 Usuarios y 1 Visitante están viendo este tema.
//argument0=sprite//argument1=subimage//argument2=sprite form//argument3=subimage of form//argument4=append to a existing spritefspr=-1if argument1=all{if sprite_exists(fspr) {sprite_delete(fspr)}for (i=0;i<=sprite_get_number(argument0)-1;i+=1){erase=surface_create(sprite_get_width(argument2),sprite_get_height(argument2))surface_set_target(erase)draw_clear_alpha(c_white,0)draw_rectangle(0,0,sprite_get_width(argument2),sprite_get_height(argument2),0)draw_set_blend_mode(bm_subtract)draw_sprite(argument2,argument3,sprite_get_xoffset(argument2),sprite_get_yoffset(argument2))draw_set_blend_mode(bm_normal)surface_reset_target()spr=surface_create(sprite_get_width(argument0),sprite_get_height(argument0))surface_set_target(spr)draw_clear_alpha(c_white,0.01)draw_sprite(argument0,i,sprite_get_xoffset(argument0),sprite_get_yoffset(argument0))draw_set_blend_mode(bm_subtract)draw_surface(erase,0,0)draw_set_blend_mode(bm_normal)surface_reset_target()if !sprite_exists(fspr) {fspr=sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0)}else {temp=sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0) sprite_merge(fspr,temp)}}return fspr}else{erase=surface_create(sprite_get_width(argument2),sprite_get_height(argument2))surface_set_target(erase)draw_clear_alpha(c_white,0)draw_rectangle(0,0,sprite_get_width(argument2),sprite_get_height(argument2),0)draw_set_blend_mode(bm_subtract)draw_sprite(argument2,argument3,sprite_get_xoffset(argument2),sprite_get_yoffset(argument2))draw_set_blend_mode(bm_normal)surface_reset_target()spr=surface_create(sprite_get_width(argument0),sprite_get_height(argument0))surface_set_target(spr)draw_clear_alpha(c_white,0)draw_sprite(argument0,argument1,sprite_get_xoffset(argument0),sprite_get_yoffset(argument0))draw_set_blend_mode(bm_subtract)draw_surface(erase,0,0)draw_set_blend_mode(bm_normal)surface_reset_target()return sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0)}
//argument0=sprite//argument1=subimage//argument2=sprite form//argument3=subimage of form//argument4=append to a existing spritefspr=-1if argument1=all{if sprite_exists(fspr) {sprite_delete(fspr)}for (i=0;i<=sprite_get_number(argument0)-1;i+=1){erase=surface_create(sprite_get_width(argument2),sprite_get_height(argument2))surface_set_target(erase)draw_clear_alpha(c_white,0)draw_rectangle(0,0,sprite_get_width(argument2),sprite_get_height(argument2),0)draw_set_blend_mode(bm_subtract)draw_sprite(argument2,argument3,sprite_get_xoffset(argument2),sprite_get_yoffset(argument2))draw_set_blend_mode(bm_normal)surface_reset_target()spr=surface_create(sprite_get_width(argument0),sprite_get_height(argument0))surface_set_target(spr)draw_clear_alpha(c_white,0.01)draw_sprite(argument0,i,sprite_get_xoffset(argument0),sprite_get_yoffset(argument0))draw_set_blend_mode(bm_subtract)draw_rectangle(sprite_get_width(argument2),0,sprite_get_width(argument0),sprite_get_height(argument0),0)draw_rectangle(0,sprite_get_height(argument2),sprite_get_width(argument2),sprite_get_height(argument0),0)draw_surface(erase,0,0)draw_set_blend_mode(bm_normal)surface_reset_target()if !sprite_exists(fspr) {fspr=sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0,0,0)}else {temp=sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0,0,0) sprite_merge(fspr,temp)}}return fspr}else{erase=surface_create(sprite_get_width(argument2),sprite_get_height(argument2))surface_set_target(erase)draw_clear_alpha(c_white,0)draw_rectangle(0,0,sprite_get_width(argument2),sprite_get_height(argument2),0)draw_set_blend_mode(bm_subtract)draw_sprite(argument2,argument3,sprite_get_xoffset(argument2),sprite_get_yoffset(argument2))draw_set_blend_mode(bm_normal)surface_reset_target()spr=surface_create(sprite_get_width(argument0),sprite_get_height(argument0))surface_set_target(spr)draw_clear_alpha(c_white,0)draw_sprite(argument0,argument1,sprite_get_xoffset(argument0),sprite_get_yoffset(argument0))draw_set_blend_mode(bm_subtract)draw_surface(erase,0,0)draw_set_blend_mode(bm_normal)surface_reset_target()return sprite_create_from_surface(spr,0,0,sprite_get_width(argument0),sprite_get_height(argument0),0,0,0,0,0,0)}
Descripcion:Este script crea un sprite con la forma de otro. Mmm... dificil de explicar, pruebenlo y verán