Junio 07, 2010, 03:39:44 AM Ultima modificación: Junio 08, 2010, 01:56:58 AM por fab62
hola makeros!!! tengo un grave problema con un script que encontre en internet, el script se llama sprite_replace_color(sprite,oldcolor,newcolor)

en donde oldcolor es el color que se quiere reemplazar y newcolor es el color que sustituye a oldcolor...

yo por lo menos lo uso con los colores de la funcion "make_color_rgb(r,g,b)"
en el argumento de oldcolor y newcolor...

pero en el gm8 no sirve este codigo, solo sirve en el gm7. como se podra editar este script para que funcione en gm8?

por favor es que lo que mas me cuesta en los codigos se trata de estas funciones de dibujo... les dejo el script:

{
   var sprite,oldc,newc;
   sprite = argument0;
   oldc  = argument1;
   newc  = argument2;

   var w,h,n,p,s,l,xo,yo,surf,i,tempsprite,newsprite,alphasprite;
   w  = sprite_get_width(sprite);
   h  = sprite_get_height(sprite);
   n  = sprite_get_number(sprite);
   p  = sprite_get_precise(sprite);
   s  = sprite_get_smooth(sprite);
   l  = sprite_get_preload(sprite);
   xo = sprite_get_xoffset(sprite);
   yo = sprite_get_yoffset(sprite);

   surf = surface_create(w,h+1);
   if (surf < 0) return -1;
   surface_set_target(surf);

   for (i=0; i<n; i+=1) {
       draw_clear_alpha(c_black,1);
       draw_set_blend_mode_ext(bm_inv_dest_color,bm_one);
       draw_sprite(sprite,i,xo,yo);
       draw_set_blend_mode(bm_normal);
       draw_point_color(0,h,oldc);
       tempsprite = sprite_create_from_surface(surf,0,0,w,h+1,p,true,s,l,xo,yo);
       draw_clear_alpha(newc,1);
       draw_sprite(tempsprite,0,xo,yo);
       sprite_delete(tempsprite);
       if (i == 0) {
           newsprite = sprite_create_from_surface(surf,0,0,w,h,p,0,s,l,xo,yo);
           if (newsprite < 0) {
               surface_free(surf);
               return -1;
           }
       }else{
           sprite_add_from_surface(newsprite,surf,0,0,w,h);
       }
       draw_clear_alpha(c_white,1);
       draw_set_blend_mode_ext(bm_zero,bm_src_alpha);
       draw_sprite(sprite,i,xo,yo);
       if (i == 0) {
           alphasprite = sprite_create_from_surface(surf,0,0,w,h,p,0,s,l,xo,yo);
           if (alphasprite < 0) {
               sprite_delete(newsprite);
               surface_free(surf);
               return -1;
           }
       }else{
           sprite_add_from_surface(alphasprite,surf,0,0,w,h);
       }
       draw_set_blend_mode(bm_normal);
   }

   surface_reset_target();
   sprite_assign(sprite,newsprite);
   sprite_set_alpha_from_sprite(sprite,alphasprite);
   sprite_delete(newsprite);
   sprite_delete(alphasprite);
   surface_free(surf);
}


en el gm8 no se encuentra la funcion "sprite_get_precise(sprite)" y "sprite_get_smooth(sprite)".
El ayer es un recuerdo, el mañana un pensamiento, es el ahora en donde existo y vivo para ser feliz :D

La soluci?n ser?a q veas en el manual del gm8 en las funciones q respectan a los colores, ahorita no puedo ver ese asunto xq no me funciona el gm :'( :'( :'(.
Un foro donde hay de todo: http://fileceru.foroactivo.net (se necesitan moderadores para el foro)