You are not logged in.
Pages: 1
now , just to start out with these scripts are horrendously slow around 1 SECOND per 32*32 area, now i believe that there would be a faster way using surfaces but at the moment my slow computer can't handle any surfaces of any size
#define sprite_add_hue
/*sprite_add_hue(sprite,hue)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** hue : the hue to add to the sprite
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,hue,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
hue = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(color_get_hue(q)+hue,color_get_saturation(q),color_get_value(q)))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
#define sprite_add_value
/*sprite_add_value(sprite,val)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** val : the value to add to the sprite
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,val,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
val = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(color_get_hue(q),color_get_saturation(q),color_get_value(q)+val))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
#define sprite_add_saturation
/*sprite_add_saturation(sprite,sat)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** sat : the saturation to add to the sprite
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,sat,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
sat = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(color_get_hue(q),color_get_saturation(q)+sat,color_get_value(q)))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
#define sprite_set_hue
/*sprite_set_hue(sprite,hue)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** hue : the hue to set the sprite to
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,hue,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
hue = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(hue,color_get_saturation(q),color_get_value(q)))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
#define sprite_set_saturation
/*sprite_set_saturation(sprite,sat)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** sat : the saturation to set the sprite to
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,sat,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
sat = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(color_get_hue(q),sat,color_get_value(q)))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
#define sprite_set_value
/*sprite_set_value(sprite,val)
**
** Uses :
** To change how a sprite looks while the game is running
**
** Arguments :
** sprite : the sprite that is going to be edited
** val : the value to set the sprite to
**
** Returns :
** The newly created sprite's index
**
** Notes :
** only sprites with one subimg can be used
** very slow
*/
var spr,val,prec,pre,q,tra,smo,xori,yori,wid,hie,e;
spr = argument0
val = argument1
prec = sprite_get_precise(spr)
pre = sprite_get_preload(spr)
tra = sprite_get_transparent(spr)
smo = sprite_get_smooth(spr)
xori = sprite_get_xoffset(spr)
yori = sprite_get_yoffset(spr)
wid = sprite_get_width(spr)
hie = sprite_get_height(spr)
e = sprite_create_from_screen(0,0,wid,hie,false,false,false,true,0,0)
draw_rectangle_color(0,0,wid,hie,32896,32896,32896,32896,false)
draw_sprite(spr,0,xori,yori)
for (i = 0;i<wid;i+=1)
{
for (ii = 0;ii<hie;ii+=1)
{
q = draw_getpixel(i,ii)
draw_point_color(i,ii,make_color_hsv(color_get_hue(q),color_get_saturation(q),val))
}
}
return sprite_create_from_screen(0,0,wid,hie,prec,tra,smo,pre,xori,yori)
draw_sprite(e,0,0,0)
there they are please tell me what you think
Offline
I don't know about these. I think they are good ideas for scripts, but they need a lot of work. Obviously they are extremely slow. They also don't yet handle sprites with more than one subimage. I think it is possible to speed them up tremendously with some blending tricks instead of pixel-by-pixel changes. They may not produce 100% the same result, but I think they'll be pretty close. I haven't test these yet, so I'm not certain how close it is possible to get.
Abusing forum power since 1986.
Offline
I hope you can improve this script, fixing the subimage and speed problems, because this is exactly whan I've been looking for.
Offline
brac37 created some scripts for doing HSV operations. They require a small amount of processing time to get started, but after that, they are extremely fast. Check this topic:
http://gmc.yoyogames.com/index.php?showtopic=377844
Abusing forum power since 1986.
Offline
Pages: 1