java - reales - ¿Cómo se establece el tamaño de letra del mapa de bits Libgdx?
libro de android studio en español pdf (4)
Estoy renderizando en la pantalla el juego fps usando una fuente de mapa de bits pero no hay métodos para el tamaño. Esto es un problema para mí porque el tamaño de la ventana de mi cámara es muy pequeño, por lo que el texto cuando se procesa es enorme y está pixelado.
font.draw(batch, Float.toString(Gdx.graphics.getFramesPerSecond), x, y);
¿Intentó el método setScale () que uso para cambiar el tamaño de mi fuente?
myFont.getRegion().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear);
myFont.setScale(scale);
si tienes problemas, deja un comentario
Buena suerte !!
Editar:
Con la última versión de libgdx, intente escalar una fuente como esta:
myFont.getData().setScale();
A menudo uso lo que sugirieron los minos23. Pero la caída es que puede verse pixelada, especialmente cuando se escala hacia arriba. Una fuente de mapa de bits grande y elegante puede ocupar mucho espacio y si necesita muchas fuentes diferentes, puede exceder su presupuesto.
Al usar Gdx.Freetype , puede crear bitmapfonts en tiempo de ejecución desde pequeños archivos .ttf
. Esto significa que solo debe enviar los archivos .ttf
con su aplicación y puede generar una fuente en función de la configuración del usuario, como la resolución.
Otro que escalar y la solución de freetype es tener múltiples bitmaps de diferentes tamaños de fuente. De esta forma, tus fuentes se mantendrán nítidas todo el tiempo, pero a costa del almacenamiento.
También uso la función setScale () como otras para reducir el tamaño de la fuente, pero aquí quiero ofrecer otra solución y tengo una pregunta. ¿Por qué no utiliza la instancia FPSRenderer o por qué no dibuja su etiqueta fps en otro lote cuya matriz de proyección tiene el tamaño de pantalla?
setScale es la función a usar. Tenga en cuenta que con la versión más reciente de LibGDX (aunque esto cambió anteriormente), necesita hacer esto isntead:
font.getData().setScale(2, 2);
antes de que fuera suficiente para hacer:
font.setScale(2, 2);
El primer número en setScale es la escala X, y el segundo es la escala Y.