Octubre 10, 2015, 11:48:45 AM Ultima modificación: Octubre 12, 2015, 06:34:01 PM por magicdidac
Buenos días, tardes, noches

Mi problema es que he hecho un script (https://gyazo.com/17c6af349cfb9198c9ab9df7b8306bf6) para hacer textos automáticos, junto a un objeto (Evento Create: https://gyazo.com/8cbaf42ca34fa80ac3be36b04a959d57 , Evento draw: https://gyazo.com/b969c61ef7fb4737593b784ce3335eb2 y https://gyazo.com/79e4e15a4bd0955ae19d70658713e586). La cosa es que las letras salen bien una detrás de otra, como en los RPG. Pero el problema es que en los RPG al escribirse el texto suena un sonido cada vez que sale una letra, es decir si la velocidad de el texto es más lenta suena más lento y si es más rápida suena más rápida. He intentado lo siguiente: Evento Draw: https://gyazo.com/854326b543bc839f96212aa6cb700194 , pero suena siempre de la misma manera, es decir no varia la velocidad. El sonido es un *bip* que se repite hasta que el texto se acabe de escribir, pero cuando quiero hacer que un texto vaya más lento sigue sonando igual de rápido. Alguien tiene alguna idea de como solucionar o plantear de otra forma este problema.

Gracias por adelantado.

Hay una variable que no está claro para qué se usa (timer), pero para solucionar el problema te puedes servir de ella. Por cierto, tienes códigos en el evento draw que no están dibujando nada y debieras pasarlos al evento step.

Donde reproduces el sonido, en vez de reproducirlo cada step, debieras hacerlo sólo cuando el texto a mostrar es distinto al texto del step anterior. Para eso, la forma más sencilla es agregar un if antes de reproducir el sonido:

if print!=string_copy(text,1,timer)
    audio_play_sound(sound,1,false);


Otra cosa: el segundo argumento de la función string_copy debe ser mayor o igual a 1.


#2 Octubre 11, 2015, 01:30:41 AM Ultima modificación: Octubre 11, 2015, 01:38:14 AM por magicdidac
Cita de: Guacusio en Octubre 10, 2015, 09:26:37 PM
Hay una variable que no está claro para qué se usa (timer), pero para solucionar el problema te puedes servir de ella. Por cierto, tienes códigos en el evento draw que no están dibujando nada y debieras pasarlos al evento step.

Donde reproduces el sonido, en vez de reproducirlo cada step, debieras hacerlo sólo cuando el texto a mostrar es distinto al texto del step anterior. Para eso, la forma más sencilla es agregar un if antes de reproducir el sonido:

if print!=string_copy(text,1,timer)
    audio_play_sound(sound,1,false);


Otra cosa: el segundo argumento de la función string_copy debe ser mayor o igual a 1.

Gracias por la ayuda. Ahora lo voy a modificar. PD: Ya lo he modificado y ¡funciona! Te estoy enormemente agradecido.