Agosto 09, 2017, 07:47:50 PM Ultima modificación: Agosto 12, 2017, 05:11:03 PM por Missy
He creado un rectangle con la opacidad en 0.5
draw_set_alpha(0.5)

pero quiero que al presionar un botón haga un efecto de desvanecimiento y de aparición, algo como esto:



Sería como un efecto parpadeo.

he probado con timers pero no he conseguido hacer un efecto parecido

#1 Agosto 10, 2017, 03:09:06 AM Ultima modificación: Agosto 10, 2017, 03:19:48 AM por NiuWeb
Un ejemplo rápido adjunto. Seguro puede optimizarse más, pero fue lo primero que se me ocurrió XD.
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Agosto 10, 2017, 03:09:06 AM
Un ejemplo rápido adjunto. Seguro puede optimizarse más, pero fue lo primero que se me ocurrió XD.

Holaa, el caso es que quería hacer un efecto parpadeo, es decir, algo seguido, que cuando se de click se desvanezca y vuelva el alpha al 0.5 como en el GIF que pasé, he intentado hacerlo con el código que me pasaste modificando un par de cosas pero el efecto pasa demasiado rápido y no consigo hacer que funcione bien

A ver si entendí bien, el estado normal debe ser con la pantalla oscurecida (que se consigue dibujando un rectángulo transparente), solo la transición se debe ver más iluminada (al bajar la opacidad del rectángulo). ¿Es así?

Cita de: Clamud en Agosto 10, 2017, 09:48:35 PM
A ver si entendí bien, el estado normal debe ser con la pantalla oscurecida (que se consigue dibujando un rectángulo transparente), solo la transición se debe ver más iluminada (al bajar la opacidad del rectángulo). ¿Es así?

Sería algo como esto: Está en alpha 0.5 por defecto (Mitad de transparencia) y cuando das click al botón comienza el efecto "parpadeo"
entonces baja a alpha 0 poco a poco y luego seguidamente sube a 0.5, (Algo como un efecto rebote)
En plan como un destello, no sé si me explico

Segun entendi.

Cuando pinches.con una variable que se ponga en true. Quitale a image_alpha -= 0.05
Mientras sea mayor a 0.

Y cuando sea = 0. Entonces pasale a alpha 0.5;

No se si me he explicado. Suerte.  ;D
PCNONOGames  www.pcnono.es

Cita de: nonoroman en Agosto 11, 2017, 12:08:47 AM
Segun entendi.

Cuando pinches.con una variable que se ponga en true. Quitale a image_alpha -= 0.05
Mientras sea mayor a 0.

Y cuando sea = 0. Entonces pasale a alpha 0.5;

No se si me he explicado. Suerte.  ;D

Eso intenté, pero no me sale

Creo que podrías hacer lo siguiente:

Evento Create:
parpadeo = 0; // variable para controlar las distintas fases del efecto
alpha = 0.5; // transparencia inicial


Evento Draw:
draw_set_alpha(alpha);
draw_rectangle(x1,y1,x2,y2,false);


Evento Step:

if mouse_check_button_pressed(mb_left)
{
if (parpadeo == 0)
{
   parpadeo = 1
}
}

if (parpadeo == 1)
{
alpha -= 0.05; // hacer que alpha llegue a 0
if (alpha <= 0)
{
  parpadeo = 2;
}
else if (parpadeo == 2)
{
  alpha = 0.5; // regresamos a la transparencia inicial
parpadeo = 0;
}