Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: JohnW en Abril 26, 2016, 05:44:23 PM

Título: Poner varios estilos Draw_text en diferentes textos
Publicado por: JohnW en Abril 26, 2016, 05:44:23 PM
Hola amigos!
Tengo una pequeña duda con los textos dentro del juego. Cuando quieres poner varios objetos de texto todos cogen el mismo estilo y no son independientes, es decir.
Yo creo un objeto de texto con
[gml]draw_set_color(c_white);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_texto1);[/gml]
Bien pues si luego creo otro objeto con otro texto, y le pongo que este segundo sea de otro color y que en vez de alinearse al centro se alinee por ejemplo a la izquierda... pues el primer texto no hace caso a su programación y obta por coger la programación de su segundo objeto o viceversa.

Me explico? Entonces la pregunta es ¿como se puede poner varios textos con varios estilos cada uno de fuentes, colores y alineaciones sin que este afecte a los demas textos?

He probado con cosas asi y nada
[gml]with (obj_texto1){
     draw_set_color(c_white);
     draw_set_halign(fa_center);
     draw_set_valign(fa_middle);
     draw_set_font(fnt_texto1);
}
with (obj_texto2){
     draw_set_color(c_lime);
     draw_set_halign(fa_left);
     draw_set_valign(fa_left);
     draw_set_font(fnt_texto2);
}[/gml]
Esto lo he probado de poner todo en un mismo objeto o cada with en su respectivo objeto y no funciona de ninguna manera.

Gracias!
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: Clamud en Abril 26, 2016, 06:15:35 PM
Lo que falta es dibujar el texto justo después de definir sus características:
[gml]
draw_set_color(c_white);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_texto1);

draw_text( x,y, texto );
[/gml]
Y el código debe estar en el evento Draw.
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: JohnW en Abril 26, 2016, 06:26:36 PM
Cita de: Clamud en Abril 26, 2016, 06:15:35 PM
Lo que falta es dibujar el texto justo después de definir sus características:
[gml]
draw_set_color(c_white);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_texto1);

draw_text( x,y, texto );
[/gml]
Y el código debe estar en el evento Draw.

Sisi eso ya lo sé, solo he puesto ese código como ejemplo, a lo que me refiero es que si yo dibujo un texto con su color, alineación, fuente y demás... luego si creas otro objeto diferente para dibujar otro texto y quieres que este otro sea de otro color al anterior y diferente alineación y fuente, pues al colocar ambos objetos en la room uno de los 2 opta por coger el código del otro para que ambos textos sean iguales y no diferentes.

A eso me referia.

¿Es posible hacer esto?
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: kostra en Abril 26, 2016, 06:54:48 PM
Para estos casos yo recomiendo el uso de scripts
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: JohnW en Abril 26, 2016, 06:57:34 PM
Cita de: kostra en Abril 26, 2016, 06:54:48 PM
Para estos casos yo recomiendo el uso de scripts

Te refieres a poner los estilos de cada texto en una script cada una?
[gml]draw_set_color(c_white)[/gml]
¿Y luego crear otro script con otro color o estilo y desde el objeto cargar dicho script para cada caso?
¿Y esto haría que mis textos cogieran cada uno la forma que le corresponde sin afectar al resto de textos de la pantalla?
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: JohnW en Abril 26, 2016, 07:25:54 PM
Me sigue cambiando los demás textos, el problema es que si tu pones un texto con sus opciones, los demas textos se adaptan a él aunque ellos tengan otras opciones.
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: Clamud en Abril 26, 2016, 08:22:16 PM
Siempre se toma la última configuración, por eso se debe configurar y dibujar de inmediato. Mira el ejemplo adjunto.
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: JohnW en Abril 26, 2016, 10:04:36 PM
Cita de: Clamud en Abril 26, 2016, 08:22:16 PM
Siempre se toma la última configuración, por eso se debe configurar y dibujar de inmediato. Mira el ejemplo adjunto.
Pues que raro, eso mismo hago en Studio, sin embargo solo funciona cuando los textos son fijos y no se crean después.
Es decir, si tu dibujas un dos textos con Draw_text y pones los dos objetos en la room "como en tu ejemplo" entonces sí funciona.

Pero si en lugar de eso, pones un solo objeto y en ese objeto le dices que active una alarma y en esa alarma le pones [gml]instance_create(obj_texto2)[/gml]
es ahí cuando ocurren los fallos, al crearse el nuevo objeto texto con su nueva configuración, tiene efecto en todos los demás textos que sean fijos en la room.
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: luis28240 en Abril 26, 2016, 11:53:19 PM
Usa el siguiente codigo

Primero creas un script, puedes llamarlo como quieras, yo lo llamare "drawText". Copia y pega el siguiente código:
/*
posicion x: argument[0]
posicion y: argument[1]
texto: argument[2]
aliniacion horizontal: argument[3]
aliniacion vertical: argument[4]
color: argument[5]
transparencia: argument[6]
fuente: argument[7]

*/
draw_set_halign(argument[3])
draw_set_valign(argument[4])
draw_set_color(argument[5])
draw_set_alpha(argument[6])
draw_set_font(argument[7])
draw_text(argument[0],argument[1],argument[2])


Cada vez que quieras crear una fuente no uses draw_text si no el nombre del script
Un ejemplo con las instrucciones de uso://nombredelscript(x,y,texto,halign,valign,color,transparencia,fuente)

drawText(x,y,"Hola mundo",fa_center,fa_middle,c_red,1,fnt1)
drawText(x,y+16,"Hola mundo",fa_center,fa_middle,c_green,0.50,lol)
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: kostra en Abril 28, 2016, 03:25:40 PM
para tu especifico "problema", crea un solo script llamado, por ejemplo, draw_default:

[gml]draw_set_colour(c_black);
draw_set_halign(fa_left);
draw_set_valign(fa_top);
[/gml]

y en el caso de que tambien cambias la tipografia, ponle tambien draw_set_font(fuente_por_defecto);

entonces, pones eso siempre al final de cada draw_text
Título: Re:Poner varios estilos Draw_text en diferentes textos
Publicado por: jodidox en Abril 29, 2016, 07:25:06 PM
Podes dibujar en el mismo objeto con diferentes fuentes y color, ect...

Solo que pones en Draw asi:


// Agregas las propiedades del primer texto

draw_set_color(c_white);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_text1);

draw_text( 10,10, "Hola");

// Agregas las propiedades del segundo

draw_set_color(c_fuchsia);
draw_set_halign(fa_left);
draw_set_valign(fa_middle);
draw_set_font(fnt_text2);

draw_text( 40,40, "Hola");



Te dejo un ejemplo.