Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Bug, no funciona el efecto de maquina de escribir la segunda vez que lo usas  (Leído 132 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Alemar5

  • Habitual
  • *
  • Puntos: 69
  • Mensajes: 32
  • Sexo: Masculino
    • Ver Perfil
Hola a todos :D

Hace tiempo hice mi sistema de diálogos rpg, era bastante sencillo, pero funcionaba, la cosa es que hace un par de dias encontre un nuevo renderizado de texto llamado scribble, trate de implementarlo en el sistema de diálogos que tenia, en un principio me parti la cabeza en pensar como adaptarlo, pero finalmente lo logre, todo parecía ir en orden y los textos se reproducen correctamente, pero la segunda vez que abría el texto comenzaba con problemas, ya que el efecto de la máquina de escribir (se escribe el texto letra por letra), trate de ver las variables una por una y parece que esta fallando la función de scribble de .typewriter_in(0.5, 1)
ok, encontre el problema pero lo complicado es como solucionarlo, si alguien sabe de algo que pueda funcionar o si ven algo raro a parte de la función del .typewriter_in, se lo agradeceria mucho, a continuación les dejo los codigos que uso:

[OBJ_TEXTBOX]

_Create_:

indice = 0;

mensaje = "";

msage = scribble(mensaje)
    .typewriter_in(0.5, 1)
        .typewriter_sound(snd_letras, 999, 1.0, 1.0)


paus = false;

_step_
if (string_length(mensaje) < string_length(referencia.msg[indice])){
    mensaje += referencia.msg[indice]
}

msage = scribble(mensaje)
    .typewriter_in(0.5, 1)
        .typewriter_sound(snd_letras, 999, 1.0, 1.0)
       
       
if msage.get_typewriter_state() = 1 && (indice <= referencia.final)
{

    if keyboard_check_pressed(ord("X")) && (mensaje == referencia.msg[indice])
    {
        indice +=1;
        global.mensaje +=1
        if (indice > referencia.final) {obj_prota.stop = false; global.mensaje = 0; instance_destroy(); }
        mensaje = "";
    }    else
    {
        mensaje = referencia.msg[indice];        
    }

}


if (msage.get_typewriter_state() < 1) && paus = false
{

    if keyboard_check_pressed(ord("X"))
    {
        msage.typewriter_skip();
    }
   
}

if (msage.get_typewriter_paused()){
   
    paus = true
    if keyboard_check_pressed(ord("X"))
    {
        msage.typewriter_unpause();    
    }

}

_Draw_
draw_self(); //permitir ver el sprite del objeto

msage.draw(x + 20, y + 7)

draw_text(x + 20, y - 50, msage.get_typewriter_state())


[OBJ_PROTA]

_Step_

//cama

if (stop == true) { exit; }

var  bloque;
bloque = collision_circle(x,y,32,obj_cama,false,false);

if (keyboard_check_pressed(ord("X")) and bloque){
    var msg;
    msg = instance_create(0,0,obj_textbox);
    msg.referencia = bloque;
    stop = true;
   
}

[OBJ_CAMA] (ejemplo)

_Create_

msg[0] = "Es tu cama suave y comoda.";
msg[1] = "Te encantaria quedarte a dormir un rato mas.";
msg[2] = "...";
msg[3] = "Mejor no.";

final = 3;

global.mensaje = 0;


[SCRIBBLE]

https://github.com/JujuAdams/Scribble

[FUNCIONES DE SCRIBBLE]

https://github.com/JujuAdams/scribble/wiki/scribble()-Methods

[VIDEO ILUSTRANDO MI PROBLEMA]

https://www.youtube.com/watch?v=wUExs6NVL84&feature=youtu.be

Si encuentran algo se los agradeceria muchisimo :,c
 

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Void

Usa la función .typewriter_reset para reiniciar la posición del efecto.