Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: WMKILLER en Marzo 31, 2020, 09:38:39 PM

Título: barra de espera de texto
Publicado por: WMKILLER en Marzo 31, 2020, 09:38:39 PM
hola, como podria hacer una barra de espera de texto?, en un cuadro de texto, que quede donde dejaste de escribir, que apareca la barra titilando indicando donde esta puesto para seguir escribiendo
Título: Re:barra de espera de texto
Publicado por: BssString en Abril 02, 2020, 02:00:03 AM
Hola WMKILLER

Yo en mi juego lo hice con una alarma. Cada vez que pulsaba una tecla, activaba la alarma por 24 STEPS. En el DRAW EVENT puse una condición simple que era: si a la alarma le quedaban más de 10 STEPS para activarse, se dibujaba la barra, si le quedaba menos NO se dibujaba, eso causaba el efecto de parpadeo.
Para encontrar la posición puedes usar "string_width".

Un ejemplo simple:
STEP EVENT
[gml]if keyboard_check(vk_anykey) { alarm[0] = 24 } //Al pulsar cualquier tecla, le mete un delay a la barrita de 24 steps para comenzar a parpadear (se dibuja durante 14 steps y NO se dibuja durante 10 steps)[/gml]
ALARM0 EVENT
[gml]alarm[0] = 18 //Esto hace que se genere un loop infinito donde la barrita parpadeará para siempre (8 steps visible y 10 steps invisible)[/gml]
DRAW EVENT
[gml]if alarm[0] >= 10 draw_text(x+string_width(text),y,"|")[/gml]

Los tiempos te los inventé, tu usa los que encuentres que mejor se adapten a tu juego.
Creo que la función "string_width" se buggea cuando lee un caracter de salto de línea, yo en mi juego lo corregí reemplazando el carácter y ajustando el ancho.
Lo otro que me acuerdo que pasó, es que la barra no se dibujaba en la posición correcta, se dibujaba mucho más a la derecha, así que en el draw_text debes quitarle unos pixeles para ajustar la posición según el tamaño de la fuente que uses.

Saludos