Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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: Dibujar texto sin que se salga del rectangulo [SOLUCIONADO]  (Leído 454 veces)

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

Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 718
  • Mensajes: 825
  • Agradecido: 107 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Tengo un texto que se dibuja sobre un rectangulo dibujado con draw_roundrect_ext.
¿Como hago para que al hacerle scroll al texto (moverlo hacia arriba y abajo), cuando se salga del area del rectangulo, no se dibuje por fuera?
¿Tal vez con una surface?
Me ayudan?
« última modificación: Diciembre 14, 2018, 08:24:36 pm por Johann »

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado FridaFlowers

Respuesta #1 en: Diciembre 10, 2018, 05:18:13 am
Te dejo los pasos explicados, de como lo haría yo:
Bueno, inicialmente (1) deberías crear una surface más grande que el texto, lo suficiente para cubrir el texto que se sale por los bordes.

(2) Tendrias que quitar la parte del recuadro para obtener el negativo(3). Esto se hace facilmente con:

draw_set_blend_mode(bm_subtract)
draw_roundrect_ext(...)

Luego deberías crear una nueva surface (4) donde dibujarías el texto normal.
Y repetirías el paso de recorte(5):
draw_set_blend_mode(bm_subtract)
draw_surface(surface_roja, 0, 0)

(6)Fin

Bueno, como dicen en las peliculas: "en mi cabeza sonaba bien".

 
Los siguientes usuarios dieron las gracias a este tema: Johann


Desconectado kostra

  • Okupa
  • *
  • Puntos: 2386
  • Mensajes: 1.984
  • Agradecido: 79 veces
  • Sexo: Femenino
  • Sé literalmente el sentido de la vida.
    • Ver Perfil
Respuesta #2 en: Diciembre 10, 2018, 11:47:50 am
Yo al estilo kostrón, pongo un sprite encima con menos depth y apañao! xD (en serio que hago eso)

"ola k ase clickarme o k ase"
la imagen no se quita xD
 


Desconectado FridaFlowers

Respuesta #3 en: Diciembre 10, 2018, 11:14:07 pm
De hecho, estuve pensando, si todavía quieres utilizar surfaces, creo que tengo una manera mucho mas facil de hacerlo.

Simplemente creas una surface con el tamaño del rectangulo y dibujas el texto encima, si el texto se sale de la surface simplemente no se dibujará.

Luego bastaría simplemente dibujar la surface.
Te dejo un ejemplo adjunto XD


 
Los siguientes usuarios dieron las gracias a este tema: Johann


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 718
  • Mensajes: 825
  • Agradecido: 107 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #4 en: Diciembre 14, 2018, 08:27:50 pm
Queda muy elegante en cuadro con el texto de esa manera, gracias por el ejemplo
 Ya estoy preparando la aplicación para publicarla,apenas esté publicada la pongo en el foro para que vean de que se trataba.

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 
Los siguientes usuarios dieron las gracias a este tema: FridaFlowers


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 718
  • Mensajes: 825
  • Agradecido: 107 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #5 en: Enero 02, 2019, 11:53:33 pm
Estaba todo tan bonito....
Hasta que se me durmió el celular en ese room y  :'(
Cuando lo desperté, un error me dice que no encuentra la surface, y si no sale el error se queda congelado hasta que pide cerrar la app

Como es una surface entiendo que esto pase pero, ¿como lo evito?

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.
 


Conectado Jucarave

  • Ganador Proyecto Nexo
  • Beta-tester
  • Adicto
  • *
  • Puntos: 427
  • Mensajes: 483
  • Agradecido: 23 veces
  • Sexo: Masculino
  • De regreso con un nuevo proyecto
    • Ver Perfil
    • Jucarave Games
Respuesta #6 en: Enero 03, 2019, 12:29:27 am
Puedes almacenar la surface en un sprite, este se conserva durante todo el juego (no olvides borrarlo cuando no lo necesites)

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

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

 


Desconectado Johann

  • Las cosas como son!
  • Moderadores globales
  • Okupa
  • *
  • Puntos: 718
  • Mensajes: 825
  • Agradecido: 107 veces
  • Sexo: Masculino
  • First Class Soldier... 10 años en CGM, 5 como mod
    • Ver Perfil
Respuesta #7 en: Enero 03, 2019, 02:39:23 am
Resulto ser un bug del GM
https://bugs.yoyogames.com/view.php?id=15485
Siempre me causa gracia que cuando a alguien no le sale algo le echa la culpa al programa XD

Lo arreglé creando la surface si de casualidad se desaparece:

if not surface_exists(recuadro) {
    recuadro = surface_create(960, 480);
}

Cita de: Fenris78
Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: Calio
Somos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.