Hola a todos nuevamente, despues de tanto tiempo inactivo volví a esta gran comunidad, me entere que podría desaparecer, ojala no sea así :'(
Yendo al grano. Yo estoy usando fuentes pero usando sprites de letras como caracteres.
El problema es que quiero asignar una alarma, por ejemplo, al inicio del juego esta la pantalla toda negra, y quisiera que empiecen a aparecer letras (la palabra "HOLA)" una por una, empezando por la primera que sería la "H", no apenas inicia, si no a unos 2 segundos de haber iniciado la room, no se si estaré usando mal la alarma (yo creo que es eso, pero no se cual es el error) (ACLARO QUE PRIMERO QUIERO LO DE LATRA "H" EL RESTO DESPUÉS SE VERÁ) :-[
En Create tengo:
fuente = font_add_sprite(fontmario, ord("!"), 1, 1);
En Alarm0 tengo:
alarm[0]=5
En Step tengo:
if alarm[0]
draw_set_font(fuente);
y en Draw tengo
if alarm[0]=5
draw_text(10, 10, "H");
Ojala puedan ayudarme :-[
Como lo estás planteando es algo complicado
Si usas draw_text(10, 10, "H");, luego tendrás que usar draw_text(10, 10, "HO") y luego draw_text(10, 10, "HOL") y luego draw_text(10, 10, "HOLA"); también es algo rara la manera en como usas la alarma.
Yo lo hice así:
en [CREATE]
cadena = "hola"
mensaje = ""
alarm[0] = room_speed * 0.6
longitud = string_length(cadena)
pos = 1
cadena es el la palabra o frase final, mensaje es una cadena que en cada evento de alarma se le agrega un caracter para ir formando la frase final. longitud es la longitud en caracteres de la frase final, pos indica la posición actual dentro de cadena
en [ALARM 0]
var muestra;
if (pos <= longitud)
{
muestra = string_copy(cadena, pos, 1)
mensaje += muestra
pos += 1
}
alarm[0] = room_speed * 0.6
en [DRAW]
draw_set_font(fontie)
draw_set_color(c_white)
draw_text(100, 150, mensaje)
[spoiler](http://sia1.subirimagenes.net/img/2014/06/11/140611011417496784.gif)[/spoiler]
Cita de: penumbra en Junio 11, 2014, 01:00:34 AM
Como lo estás planteando es algo complicado
Si usas draw_text(10, 10, "H");, luego tendrás que usar draw_text(10, 10, "HO") y luego draw_text(10, 10, "HOL") y luego draw_text(10, 10, "HOLA"); también es algo rara la manera en como usas la alarma.
Yo lo hice así:
en [CREATE]
cadena = "hola"
mensaje = ""
alarm[0] = room_speed * 0.6
longitud = string_length(cadena)
pos = 1
cadena es el la palabra o frase final, mensaje es una cadena que en cada evento de alarma se le agrega un caracter para ir formando la frase final. longitud es la longitud en caracteres de la frase final, pos indica la posición actual dentro de cadena
en [ALARM 0]
var muestra;
if (pos <= longitud)
{
muestra = string_copy(cadena, pos, 1)
mensaje += muestra
pos += 1
}
alarm[0] = room_speed * 0.6
en [DRAW]
draw_set_font(fontie)
draw_set_color(c_white)
draw_text(100, 150, mensaje)
[spoiler](http://sia1.subirimagenes.net/img/2014/06/11/140611011417496784.gif)[/spoiler]
GracIas Penumbra, funciona tal cual lo quería, pero el problema es que me usa una fuente por defecto, y lo que yo quiero es hacerlo con una fuente conformada por sprites XD
sólo tienes que declarar tu sprite font en CREATE y especificarla en DRAW en lugar de "fontie".
Muy interesante.
J.E.A, a qué te refieres con lo de un font de Sprite por letras? Te has creado un sprite para cada letra del teclado?
Penumbra, muy chulo mostrar el ejemplo en un spoiler. ¿Qué enlazas un fichero de video?
Gracias
Cita de: empardopo en Junio 11, 2014, 07:13:29 AM
Muy interesante.
J.E.A, a qué te refieres con lo de un font de Sprite por letras? Te has creado un sprite para cada letra del teclado?
Penumbra, muy chulo mostrar el ejemplo en un spoiler. ¿Qué enlazas un fichero de video?
Gracias
Graciasm es sólo un gif animado 8). Me voy a permitir responder lo de la sprite font: es un sprite con muchas subimágenes en un orden específico:
(http://sia1.subirimagenes.net/img/2014/06/11/140611072755511580.gif)
siguiendo la numeración de la tabla de caracteres ANSI. En GM usas la función
font_add_sprite() para crear una fuente que luego puedas usar. Son útiles para cuando quieres mostrar en tu juego un tipo de fuente en específico, sin preocuparte de si el usuario tiene o no esa fuente instalada en su sistema, también a la fuente se le pueden agregar efectos como borde, sombra, gradiente, etc, ya que se trata en realidad de una imagen, lo malo es que es tedioso hacer el juego de caracteres a mano, aunque hay programas precisamente para hacer font sprites de manera automática.
Muchas gracias por la explicación.
Muy interesante y la verdad que potente.
Thanks!
Cita de: penumbra en Junio 11, 2014, 07:04:16 AM
sólo tienes que declarar tu sprite font en CREATE y especificarla en DRAW en lugar de "fontie".
Gracias Penumbra, ahora sí salio tal cual quería! Saludos! y gracias nuevamente!
Pongo como quedo todo para el que quiera saber
En Create quedo así:
cadena = "HOLA"
mensaje = ""
alarm[0] = room_speed * 0.6
longitud = string_length(cadena)
pos = 1
fuente = font_add_sprite(sprite6, ord("!"), 1, 1);
En alarm:
var muestra;
if (pos <= longitud)
{
muestra = string_copy(cadena, pos, 1)
mensaje += muestra
pos += 1
}
alarm[0] = room_speed * 0.6
Y en draw:
draw_set_font(fuente)
draw_set_color(c_white)
draw_text(100, 150, mensaje)
Como ven, puse fuente en "draw_set_font(fuente)" que es la fuente que uso como sprites, así como explico mas arriba Penumbra. Ahora sí ya pongo el tema como solucionado. :D
Gracias por compartir el resultado final.
Saludos