Hola.... mi problema es el siguiente:
Tengo un objeto, el cual tiene 2 sprites distintos, los que necesito que cambien según el valor de una variable que llame "dibujo"
y escribi en el evento draw:
if dibujo=0{draw_sprite_ext(spr_bunker2,0,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);}
if dibujo=1{draw_sprite_ext(spr_bk_disparo2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);}
el asunto es que hace el cambio de sprite pero muestra solo la primera subimagen, el cambio debe hacerse cuando se le acerca un objeto:
if distance_to_object(enemigo1)<=200
{
dibujo=1;
}
else
{
dibujo=0;
}
por favor ayuda.... GRACIAS....
if dibujo=0{draw_sprite_ext(spr_bunker2,0,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);}
if dibujo=1{draw_sprite_ext(spr_bk_disparo2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);}
Usar varios if cuando comparas una misma variable crea lag y un juego oco optimisado.
usa mejor un switch y case.
switch (dibujo)
{
case 0: draw_sprite_ext(spr_bunker2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); break;
case 1: draw_sprite_ext(spr_bk_disparo2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); break;
}
elviskelley tienes razón con lo de optimizar... revisando me di cuenta que puedo hacer lo mismo con otros códigos.... con respecto al error que tenia le agregue "image_speed=1;" y me mostró el sprite como corresponde..
switch (dibujo)
{
case 0: draw_sprite_ext(spr_bunker2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);image_speed=1; break;
case 1:draw_sprite_ext(spr_bk_disparo2,-1,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);image_speed=1;
break;
}