Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: fab62 en Junio 07, 2010, 03:39:44 AM

Título: problema con script (reemplazar color)
Publicado por: fab62 en Junio 07, 2010, 03:39:44 AM
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)".
Título: Re: problema con script de reemplazo de color
Publicado por: soccer2008 en Junio 07, 2010, 08:36:03 PM
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 :'( :'( :'(.