Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: FernandoNavarro en Febrero 04, 2020, 05:01:05 pm

Título: ¿Cómo se puede saber la posición de una letra dentro de una string?
Publicado por: FernandoNavarro en Febrero 04, 2020, 05:01:05 pm
Hola buenas, hace tiempo no creo un nuevo tema, pero ahora pensando en algo se me ocurrió hacer un cursor con mouse, que al hacer click dentro de una string, ponga el cursor "|" en el lugar en que presione. Por esto quiero saber si es posible saber la posición en x e y de una letra desde donde se dibuja la string.

Ejemplo:

"Hola mundo"

Mr gustaría saber la posición en x de la letra "m".

Gracias por leer.
Título: Re:¿Cómo se puede saber la posición de una letra dentro de una string?
Publicado por: BssString en Febrero 05, 2020, 01:09:14 am
Hola FernandoNavarro

Para eso existe la función "string_pos(substr, str)".
Te devuelve el número de la posición donde encontró tu texto "substr" dentro de la string "str" o devuelve cero si no lo encuentra.

Ejemplo:
Código: [Seleccionar]
string_pos("H","Hola mundo")Te devuelve "1" porque encontró la "H" en la primera posición

Ejemplo 2:
Código: [Seleccionar]
string_pos("chao","Hola mundo")Te devuelve "0" porque No encontró la palabra "chao" dentro de tu String.

Saludos
Título: Re:¿Cómo se puede saber la posición de una letra dentro de una string?
Publicado por: FernandoNavarro en Febrero 05, 2020, 05:05:01 am
Hola BssString.

Eso lo entiendo, y me ha sido muy útil. Pero lo que busco es saber la posición en x de la letra, por ejemplo:

"Hola mundo"

La letra "a" está 20 píxeles a la derecha de la "H".

Creo que no es posible saber tal valor.

Gracias de todos modos
Título: Re:¿Cómo se puede saber la posición de una letra dentro de una string?
Publicado por: kostra en Febrero 05, 2020, 05:08:33 am
string_width()
Título: Re:¿Cómo se puede saber la posición de una letra dentro de una string?
Publicado por: NiuWeb en Febrero 05, 2020, 05:15:44 pm
Pueeds crear un pequeño script algo así:
///substring_width(str, pos);
return string_width( string_copy(argument0, 0, argument1) );
Luego ejecutarlo así:
str = "Hola mundo";
width = substring_width(str, 6);
Eso guardará en width el tamaño en pixeles de la cadena hasta el caracter 6; depende de la fuente que esté definida para dibujo.