Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: kostra en Agosto 28, 2015, 01:28:25 PM

Título: otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 28, 2015, 01:28:25 PM
Leo, leo y leo el manual, pero no entiendo nada, eso del maximo de separacion/salto de linea bla bla... me siento retra xD

Si alguien puede explicarme bien esta funcion plis T_T, creo ke le hara falta hasta hacermelo con dibujitos xD
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: Guacusio en Agosto 28, 2015, 02:10:06 PM
Cuando dibujas una cadena de texto con draw_text_ext tienes 5 argumentos:

-La coordenada x del texto
-La coordenada y del texto
-El string
-sep
-w

sep es la separación vertical en pixeles entre las líneas de texto en el caso de que el texto ocupe más de una línea
w es el ancho máximo del texto en pixeles que GMS consulta para saber si debe quebrar el texto en varias líneas para cumplir con ese ancho máximo

La función string_width_ext lo que hace es calcular el ancho real que ocupa el texto como si fuera dibujado con draw_text_ext (no el ancho máximo). Imagínalo como el ancho de un rectángulo circunscrito a tu texto (o como el ancho del "bounding box" del texto, si lo prefieres). Te sirve para saber cuánto ancho exacto ocupa un texto en pixeles y así saber dónde posicionar otras cosas relativas a éste.

Si aún te cuesta imaginar lo que son la separación entre líneas y el ancho máximo, lo mejor es, como siempre, hacer pruebas: dibuja un texto con draw_text_ext cambiando los parámetros sep y w y ve cómo los resultados son diferentes.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 28, 2015, 03:44:34 PM
No puedo estearlo ahora, me mude a suiza y mi pc aun esta in epein, aqui solo tienen PCs basura jaja. El caso es... si devuelve un "ancho"... para que sirve la separacion del salto de linea, si eso ya se va para abajo no para el lado?, es lo que me confunde :S
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: Guacusio en Agosto 29, 2015, 12:04:09 AM
Cita de: kostra en Agosto 28, 2015, 03:44:34 PM
No puedo estearlo ahora, me mude a suiza y mi pc aun esta in epein, aqui solo tienen PCs basura jaja. El caso es... si devuelve un "ancho"... para que sirve la separacion del salto de linea, si eso ya se va para abajo no para el lado?, es lo que me confunde :S

Efectivamente, el parámetro sep no influye en nada a la hora de calcular el ancho. Supongo que lo dejaron porque la función está hermanada con string_height_ext y draw_text_ext que sí lo necesitan.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 29, 2015, 12:26:48 PM
ya pero, por mucho que estén "hermanadas" (nunca oi esa palabra jaja), si no devuelve nada mas que un ancho, ese dato no es inservible completamente, hasta para usarlas junto a esas funciones que has dicho?

Me empieza a dar dolores de cabeza esta funcion que probablemente ni use jaja, pero me he puesto el proposito de estudiarme TODO el manual cueste lo que cueste xD Gracias en serio por todo ese esfuerzo ^^
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: Guacusio en Agosto 29, 2015, 04:29:44 PM
Cita de: kostra en Agosto 29, 2015, 12:26:48 PM
ya pero, por mucho que estén "hermanadas" (nunca oi esa palabra jaja), si no devuelve nada mas que un ancho, ese dato no es inservible completamente, hasta para usarlas junto a esas funciones que has dicho?

Me empieza a dar dolores de cabeza esta funcion que probablemente ni use jaja, pero me he puesto el proposito de estudiarme TODO el manual cueste lo que cueste xD Gracias en serio por todo ese esfuerzo ^^

¿Te parece inservible saber el ancho en pixeles que ocupa un texto? Mira el ejemplo que sale en la descripción de string_width_ext del manual.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 29, 2015, 06:03:48 PM
el ancho del salto de linea digo, eso no es y "altura"?
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: penumbra en Agosto 29, 2015, 09:38:22 PM
Si quieres crear el efecto visual de un libro, es decir, los típicos libros o pergaminos de RPGs como la serie elder scroll o divinity, etc. Tienes que poder ajustar el ancho de cada línea para que no rebase el ancho de la página, y precísamente esta función sirve para controlar este tipo de formato. Además de eso, permite controlar la separación o interlineado, por lo que ningún parámetro me parece inútil.

la altura (entre líneas) es sep.

el ancho no es altura. el ancho (w) es el ancho máximo que una línea de texto puede alcanzar antes de que se inserte un salto de línea, esto es lo que evita que una línea se "alargue" de más.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: Guacusio en Agosto 29, 2015, 10:39:07 PM
Cita de: penumbra en Agosto 29, 2015, 09:38:22 PM
(...) permite controlar la separación o interlineado, por lo que ningún parámetro me parece inútil.

Sí, en el caso de draw_text_ext. Pero para string_width_ext el argumento sep es innecesario.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: penumbra en Agosto 29, 2015, 10:46:02 PM
Cita de: Guacusio en Agosto 29, 2015, 10:39:07 PM
Cita de: penumbra en Agosto 29, 2015, 09:38:22 PM
(...) permite controlar la separación o interlineado, por lo que ningún parámetro me parece inútil.
Sí, en el caso de draw_text_ext. Pero para string_width_ext el argumento sep es innecesario.
Vale, ahora veo a lo que se refieren.
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 31, 2015, 02:00:28 PM
es decir... sep es el ancho de la separacion entre letra y letra, y sep es el ancho de toda la linea?? :S
Título: Re:otra duda mas xD (string_width_ext)
Publicado por: Guacusio en Agosto 31, 2015, 02:40:31 PM
Cita de: kostra en Agosto 31, 2015, 02:00:28 PM
es decir... sep es el ancho de la separacion entre letra y letra, y sep es el ancho de toda la linea?? :S

(http://neomentor.net46.net/imagenes/kostra.png)

con w siempre mayor o igual a string_width_ext.

¿Te queda claro ahora?

Título: Re:otra duda mas xD (string_width_ext)
Publicado por: kostra en Agosto 31, 2015, 04:49:04 PM
bueno gracias, dejemos el tema ya, espero algun dia encontrarme con un caso en el que me haga falta usarlo si o si xD

PD: error en mi anterior respuesta, puse dos veces "sep" jaja, no importa.