Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: maureli en Diciembre 16, 2009, 06:57:44 PM

Título: pregunta sobre el engine de dialogo de fenris
Publicado por: maureli en Diciembre 16, 2009, 06:57:44 PM
Hola queria hacer dos  preguntitas sobre este fabuloso engine es un poco complicado asi que empiezo sin mas:

1? ya implemente el engine en un ejemplo practico que pongo adjunto, la cuestion es que no se como crear distintos dialogos a partir del mismo objeto o_conversacion, seria facil si creara un ojeto por cada dialogo que quisiera tener pero ustedes saben o no? estoy buscando un respuesta que se encuentre dentro del creation code del Objeto-Persona con el que deseo hablar, porque de esa manera podria hacer mucho mas ligero el juego... quizas convirtiendo v_texto[X] en una variable no lo se bien sino no lo estaria preguntando.

2? mas sensillo quizas, me gustaria crear un sistema que pause el juego mientras los dialogos estan presentes, o por o menos que el personaje o personajes no se muevan.

A y si no quuieren descargar el ejemplo aca dejo la situacion

OBJETO O_CONVERSACION:
Create Event:
execute code:

i=0;
i2=0;
v_tmostrado="";
//Especifica aqui el avatar que quieres mostrar
v_avatar=s_avatar;
/*especifica el numero de lineas que tendra tu conversacion incluyendo
el texto "FIN" que indica el termino del dialogo*/
n_lineas=9;
draw_set_color(c_yellow);

sprite_index=v_avatar;
instance_create(x,y,o_cuadrodialogo);

alarm[0]=room_speed/10;

/*Estos son los textos que podras modificar. Si quieres incluir mas lineas
solo tienes que poner mas entradas en el array. */

v_texto[0]="HOLA QUE TAL!!"
v_texto[1]="ESTE ES UN TEXTO DE PRUEBA"
v_texto[2]="CADA TEXTO ESTA CONTENIDO#EN UNA POSICION DE UN ARRAY"
v_texto[3]="ESTO ES UTIL PARA POSICIONAR#TODOS LOS TEXTOS JUNTOS"
v_texto[4]="Y TENERLO TODO ORDENADO"
v_texto[5]="ASI, CUANDO TENGAS QUE#CAMBIAR UN TEXTO"
v_texto[6]="SOLO TIENES QUE MODIFICAR#ESTE APARTADO"
v_texto[7]="DEL CODIGO FUENTE, CON LO#QUE PUEDES"
v_texto[8]="MODIFICAR LOS TEXTOS CON#MAS FACILIDAD"

// El texto "FIN" deberas ponerlo para concluir la conversacion.
v_texto[9]="FIN"


Alarm Event for alarm 0:
execute code:

i2+=1
v_tmostrado=string_copy(v_texto[i],0,i2)

if(i2<=string_length(v_texto[i]))
{alarm[0]=room_speed/10}


Draw Event:
execute code:

draw_sprite(v_avatar,-1,x,y)
draw_text_ext(x+o_conversaciones.sprite_width*1.5,y,v_tmostrado,18,180);

//Con un poco de imaginacion, tambien puedes cambiar la imagen segun tu estado de animo
//en la conversacion..
if(i=5)
{v_avatar=s_avatar2}

if(i=7)
{v_avatar=s_avatar}



Key Press Event for <Space> Key:
execute code:

if(i<n_lineas)
{i+=1}

if(v_texto[2]="CADA TEXTO ESTA CONTENIDO#EN UNA POSICION DE UN ARRAY")
{instance_change(dialog,1)}

if(v_texto[i]="FIN")
{instance_destroy()}

if(v_texto[i]<>"FIN")
{
i2=0;
alarm[0]=room_speed/10
}


OBJETO-PERSONA con quien dialogar

Create Event:
execute code:

dialogo=false

Collision Event with object persona1:
execute code:

if keyboard_check(ord("A")){dialogo=true;};
if dialogo is equal to true
      for all dialog: change the instance into object o_conversaciones, yes performing events