Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

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: Como hacer un texto letra por letra con sprites de font  (Leído 498 veces)

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

Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Hola, soy nuevo en esta comunidad y tengo una gran duda. Es que estoy haciendo un juego RPG y tengo los sprites de los textos, pero no se como hacerle para que salga el texto con estas letras. He probado algunos scripts que he visto en esta comunidad pero ninguno me es util


Si alguien sabe porfavor digamelo. Gracias de antemano :D  :D

OmarMakero
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Clamud

Respuesta #1 en: Mayo 05, 2020, 04:36:55 am
¿Qué scrips has utilizado?
No quiero repetir algo de lo que has visto

 


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Respuesta #2 en: Mayo 05, 2020, 04:55:55 am
¿Qué scrips has utilizado?
No quiero repetir algo de lo que has visto
Este es el script que utilizé para dibujar el texto com las sprites:

EDIT:

scr_letras_sprite
//Argument0: Texto a escribir
//Argument1:  nombre de la sprite con las letras
for (j=1;j<=string_length(argument0);j+=1)
   {
  tx=string_copy(argument0,j,1);
   if (tx='.') draw_sprite(argument1,26,x-12+j*14,y-14+i*14);
   else if (tx=',') draw_sprite(argument1,27,x-12+j*14,y-14+i*14);
   else if (tx!=' ') draw_sprite(argument1,ord(string_upper(tx))-65,x-12+j*14,y-14+i*14);
   }

Luego creo un objeto y hago lo siguiente:

Create:
Código: [Seleccionar]
numero = 1
text[1]='Habia una vez...
text[2]='Un reino llamado Hyrule,';
text[3]='Donde reinaba el mal. Pero un dia...';
text[4]='Apareció un heroe que cargando con su espada logro defender su tierra natal.'
i=0;
alarm[0]=2;

Alarm0:
Código: [Seleccionar]
if i>string_length(texto[numero]) then exit;

// Se imprime una letra más
i+=1;

// Si la tecla Z está presionada, el texto avanzará más rápido.
if keyboard_check(ord("Z")) then alarm[0]=1;
else alarm[0]=2;

//Si el texto llega al final, que se cree el siguiente
if i=string_lenght(texto[numero])
{
alarm[1] = 20
}

Alarm1:
Código: [Seleccionar]
if numero < 4
{
numero +=1
i = 0
alarm[0] = 2
}

Draw:
Código: [Seleccionar]
copia = string_copy(texto[numero],1,i)
texto_sprite = scr_letras_sprite(copia,alfabeto) //Alfabeto es el sprite con las letras y signos
draw_sprite_stretched(spr_dialogos,0,x,y,room_width,160)
draw_text(x+40,y,texto_sprite);

Edite ahora el procedimiento porque se me habian olvidado algunas cosas :-[, pero cuando le doy a previsualizar, se cae el texto.

No se si me expliqué lo suficiente, pero gracias por preguntar :D :D
« última modificación: Mayo 05, 2020, 09:27:12 pm por OmarMakero »

OmarMakero
 


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Respuesta #3 en: Mayo 10, 2020, 06:16:09 pm
Hola, he intentado buscar la fuente del problema, pero no la encuentro y yá no puedo más,

Si alguien tiene algún script o alguna idea de como hacer un texto así, porfavor digamelo, me sirve cualquier cosa.

Saludos y gracias de antemano :D :D

OmarMakero
 


Desconectado 3dgeminis

Respuesta #4 en: Mayo 11, 2020, 03:22:30 am
Si queres dibujar texto con sprites tenes la funcion font_add_sprite

https://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/fonts/font_add_sprite.html
« última modificación: Mayo 11, 2020, 03:33:56 am por 3dgeminis »

 
Los siguientes usuarios dieron las gracias a este tema: OmarMakero


Desconectado Clamud

Respuesta #5 en: Mayo 11, 2020, 03:48:29 am
Estaba pensando en proponer font_add_sprite, pero acabo de notar que pusiste el icono de GM8, entonces necesitas una alternativa.
¿Puedes compartir el sprite con las letras?
Supongo que las letras están ordenadas en una cuadrícula o matriz, lo digo por la forma del script. Lo mejor sería que cada letra sea una subimagen en el sprite, recuerdo haber visto scripts que usan ese tipo de sprites, pero no logro encontrarlos. De todas formas podemos intentar escribir uno, no debe ser muy complicado.

 


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Respuesta #6 en: Mayo 11, 2020, 03:17:49 pm
Estaba pensando en proponer font_add_sprite, pero acabo de notar que pusiste el icono de GM8, entonces necesitas una alternativa.
¿Puedes compartir el sprite con las letras?
Supongo que las letras están ordenadas en una cuadrícula o matriz, lo digo por la forma del script. Lo mejor sería que cada letra sea una subimagen en el sprite, recuerdo haber visto scripts que usan ese tipo de sprites, pero no logro encontrarlos. De todas formas podemos intentar escribir uno, no debe ser muy complicado.


El sprite que tengo es como tu dices, esta cada letra en una subimagen, de todas maneras dejo el link de donde saqué las sprites porque no se como subirlas  :-[

https://www.spriters-resource.com/download/6455/

Lo que hice fue añadir un sprite llamado "Alfabeto" y luego le di a "add from strip" para seleccionar las letras, cada una en una subimagen.

Estaré pendiente a las respuestas de ustedes, muchas gracias :D :D

OmarMakero
 


Desconectado Jucarave

  • Ganador Proyecto Nexo
  • Adicto
  • *
  • Puntos: 438
  • Mensajes: 496
  • Agradecido: 33 veces
  • Sexo: Masculino
  • De regreso con un nuevo proyecto
    • Ver Perfil
    • Jucarave Games
Respuesta #7 en: Mayo 11, 2020, 06:21:02 pm
font_add_sprite(spr,first,prop,sep)

Debería funcionar también en GM8.1, lo único es que los sprites deben estar en el mismo orden ASCII (http://www.asciitable.com/), puedes hacer uso del parametro first que indica cual carácter ASCII es el primero en el sprite, por ejemplo, si tu primer carácter es espacio " " entonces puedes colocar 32, si es el número 0 entonces colocas 48, si es la A mayuscula coloca 65, etc... revisa http://www.asciitable.com/

así que podrías usarlo así:

font_add_sprite(sprFuente, 32, true, 2)

Aunque debes ajustarlo basado en tu sprite y tamaño de fuente

Saludos


Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.

 


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Respuesta #8 en: Mayo 11, 2020, 08:07:16 pm
font_add_sprite(spr,first,prop,sep)

Debería funcionar también en GM8.1, lo único es que los sprites deben estar en el mismo orden ASCII (http://www.asciitable.com/), puedes hacer uso del parametro first que indica cual carácter ASCII es el primero en el sprite, por ejemplo, si tu primer carácter es espacio " " entonces puedes colocar 32, si es el número 0 entonces colocas 48, si es la A mayuscula coloca 65, etc... revisa http://www.asciitable.com/

así que podrías usarlo así:

font_add_sprite(sprFuente, 32, true, 2)

Aunque debes ajustarlo basado en tu sprite y tamaño de fuente

Saludos



Hola, hice lo que me explicaste y hasta cierto punto me funciona. Ordené todos las subimagenes acorde a los numeros que contenian el caracter, pero a partir del número 128 (En codigo ASCII sería Ç) en adelante no se dibuja la subimagen correspondiente, cuál es el problema ??? ??? Será que estoy haciendo algo mál y no lo veo ??? ???

OmarMakero
 


Desconectado Jucarave

  • Ganador Proyecto Nexo
  • Adicto
  • *
  • Puntos: 438
  • Mensajes: 496
  • Agradecido: 33 veces
  • Sexo: Masculino
  • De regreso con un nuevo proyecto
    • Ver Perfil
    • Jucarave Games
Respuesta #9 en: Mayo 11, 2020, 08:34:36 pm
Interesante, por acá investigando un poco mas del tema, al parecer GM usa ciertas posiciones desactivadas por control... fíjate en esta tabla para armar tu sprite:

https://docs.yoyogames.com/source/dadiospice/002_reference/game%20assets/fonts/font_tables.html

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.

 
Los siguientes usuarios dieron las gracias a este tema: OmarMakero


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 87
  • Mensajes: 51
  • Agradecido: 3 veces
  • Sexo: Masculino
  • Nací para programar en Game Maker
    • Ver Perfil
Respuesta #10 en: Mayo 12, 2020, 08:32:39 pm
Ya he solucionado el problema, muchas gracias a todos los que me respondieron  :love:.

Nos vemos en el proximo post   :):D.

OmarMakero