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)".
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 :'( :'( :'(.