Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Momfus en Octubre 23, 2011, 12:42:04 PM

Título: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: Momfus en Octubre 23, 2011, 12:42:04 PM
Hola a todos, vengo a ustedes porque me mata la cabeza y no pude solucionarlo (estoy hace 6 horas con el problema).

Quiero hacer lo siguiente:

Tengo un sprite llamado sp_cartel y un texto que los creo en el evento "draw" de un objeto. Por ahora todo bien, pero quiero que ambos comiencen de tener alpha = 0 a alpha = 1...el paso para hacerlo con la im?gen ?ndice del objeto no tengo problemas, pero con las cosas dibujas en el evento draw...no puedo. En otras palabras, quiero que un objeto creo dos im?genes: una de texto (que dice "hola" por ejemplo") y un sprite, que vayan de alpha=0 a alpha=1.

Lo que tengo es lo siguiente:

Create
[gml]image_alpha = 0;
[/gml]

Step
[gml]
if(image_alpha<1){
  image_alpha+=0.05;
}
[/gml]

Draw
[gml]
draw_sprite(sp_cartel,0,x,y);

draw_set_font(font_carteles);
draw_set_halign(fa_center);
draw_set_color(c_white);

draw_text(x+16,y+8,"HOLA")   
[/gml]


Agradezco cualquier ayuda que me pueda ser ?til.

PD: Ya s? que no funciona la acci?n: image_alpha

PD2: he probado con draw_sprite_ext asignandole un alpha, pero ?como hago para que vaya cambiando hasta que se vea?..adem?s esto no afecta el texto.

PD3: La manera m?s sencilla pero menos eficiente es haciendo la imagen completa con el texto incluido y listo, pero la cosa es que es poco pr?ctico y el texto se va a ir modificando, por lo que seria muy pesado hacer 100 im?genes.
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: PoSvA en Octubre 23, 2011, 02:59:45 PM
draw_set_alpha(image_alpha) es la solucion!

deberias consultar la documentacion/ayuda de GM antes de preguntar algo tan simple ^^
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: MaanuRP en Octubre 23, 2011, 03:39:28 PM
Mira, te hice un ejemplo.

Pero con lo que te contestaron antes ya te deberia funcionar.

Por las dudas te dejo el ejemplo. Esto hace que el aplha de la imagen y del texto vaya bajando muy gradualmente hasta 0 y devuelta hasta 1.

Cualquier cosa, avisame.

Saludos!
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: elviskelley en Octubre 23, 2011, 04:26:58 PM
cambia esto
draw_sprite(sp_cartel,0,x,y);
por esto
draw_sprite_ext(sp_cartel,0,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: Momfus en Octubre 23, 2011, 07:40:19 PM
Cita de: PoSvA en Octubre 23, 2011, 02:59:45 PM
draw_set_alpha(image_alpha) es la solucion!

deberias consultar la documentacion/ayuda de GM antes de preguntar algo tan simple ^^

Si, lo aplique pero me cambia el alpha de todas las im?genes en pantalla...no solo del objeto cartel.

Cita de: MaanuRP en Octubre 23, 2011, 03:39:28 PM
Mira, te hice un ejemplo.

Pero con lo que te contestaron antes ya te deberia funcionar.

Por las dudas te dejo el ejemplo. Esto hace que el aplha de la imagen y del texto vaya bajando muy gradualmente hasta 0 y devuelta hasta 1.

Cualquier cosa, avisame.

Saludos!

Gracias por ejemplo, lo aplique tal cual pero me causa el error que dije m?s arriba: me cambia el alpha de todas las im?genes que estan en pantalla.

Cita de: elviskelley en Octubre 23, 2011, 04:26:58 PM
cambia esto
draw_sprite(sp_cartel,0,x,y);
por esto
draw_sprite_ext(sp_cartel,0,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)

Gracias elviskelley pero eso me establece el alpha de una imagen y no del texto, adem?s que este no va cambiando.

Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: JRX7500 en Octubre 23, 2011, 08:41:26 PM
Intenta asi:
Step
[gml]
if(image_alpha<1){
image_alpha+=0.05;
}
draw_set_alpha(1)[/gml]

Draw
[gml]draw_set_alpha(image_alpha)
draw_sprite(sp_cartel,0,x,y);

draw_set_font(font_carteles);
draw_set_halign(fa_center);
draw_set_color(c_white);

draw_text(x+16,y+8,"HOLA")  
[/gml]
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: Mega G en Octubre 23, 2011, 08:52:00 PM
Para que no cambie la transparencia de los dem?s objetos, a?ade al final:

[gml]draw_set_alpha(1)[/gml]

As? todo lo que venga despu?s ser? opaco.

Espero que te haya servido.
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: MaanuRP en Octubre 23, 2011, 08:54:08 PM
No no, no tienes que agregar nada:

Con el ejemplo que yo te di, no se aplica a todos los objetos. El objeto "Draws" utilizalo solo para lo que quieres que tengan ese efecto de alpha.

Mira, aca modifique el ejemplo para que lo veas, lo unico que hice fue crear un sprite (Un cuadrado rojo de 32x32), un objeto, que le asigne ese sprite y lo puse en la room.
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: Mega G en Octubre 23, 2011, 09:03:09 PM
EDIT: Me refer?a al codigo de JRX7500 y luego te confund? por ?l cuando me respondiste (MaanuRP).


Cita de: MaanuRP en Octubre 23, 2011, 08:54:08 PM
No no, no tienes que agregar nada:

Con el ejemplo que yo te di, no se aplica a todos los objetos. El objeto "Draws" utilizalo solo para lo que quieres que tengan ese efecto de alpha.

Mira, aca modifique el ejemplo para que lo veas, lo unico que hice fue crear un sprite (Un cuadrado rojo de 32x32), un objeto, que le asigne ese sprite y lo puse en la room.


Pero draw_set_alpha() se aplica a todo el juego, por lo que todos los objetos se ver?n afectados, no solo el objeto en cuesti?n. A lo mejor me equivoco, pero insisto en que creo que es necesario a?adir un draw_set_alpha(1) al final para que los dem?s objetos no se vean afectados.
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: MaanuRP en Octubre 23, 2011, 09:26:00 PM
No no, se aplica solamente al evento draw. Fijate en el segundo ejemplo que di (El que le diste "quote" y abrelo con GM y sin modificar nada dale a Play).

Mira como el cuadro negro que dice "Imagen" y el texto se desvanece mientras que el cuadro rojo permanece siempre con el mismo alpha.

De paso revisa como lo hice, asi ves como lo hice, quizas tu tienes razon pero mi codigo esta escrito de otra manera a la que piensas.

Saludos!
Título: Re: ?C?mo hago esto? (cambiar alpha de texto y sprite)
Publicado por: Momfus en Octubre 24, 2011, 05:19:12 AM
Gracias MaanuRP, a pesar de que me soluciono las cosas parcialmente, pude con un amigo arreglarlo cambiando las cosas en el evento draw por esto:

[gml]draw_sprite_ext(sp_cartel,0,x,y,1,1,0,c_white,image_alpha);   

draw_set_font(font_carteles);
draw_set_halign(fa_center);
draw_set_color(c_white);

draw_text_color(x+65,y+5,"200#Extra Files",c_white,c_white,c_white,c_white,image_alpha); [/gml]