En XNA, la tecnología spritefont es horrible. Nuclex hace el trabajo mucho mejor, pero no quiero tener referencias externas, y casi termino con mi juego.
Cuando se usan fuentes como Sansation o Quicksand, se ve terrible en tamaños más pequeños de las fuentes. ¡Es muy malo!
¿Hay una solución conocida para esto? Intenté configurar los tamaños de fuente en extremadamente alto y luego reducirlos en el spritebatch sin suerte.
Respuestas:
XNA le permite importar una textura como fuente de sprite . Probablemente pueda obtener mejores sugerencias y suavizado en su fuente si coloca cada carácter manualmente en un buen programa de edición de imágenes, en lugar de confiar en la hoja de sprites que genera XNA.
fuente
El procesador de fuentes sprite XNA usa compresión DXT3 que no funciona bien con el nuevo alfa premultiplicado en XNA 4.0. De ahí la apariencia cuadrada del texto.
El procesador de fuente Nuclex sprite genera exactamente los mismos datos, excepto que el interno
Texture2D
que contiene los datos de mapa de bits de fuente no está comprimido, por lo que no tiene problemas de calidad.Debido a que los datos del procesador Nuclex están en el mismo formato, el
SpriteFont
lector XNA puede leerlos, y no necesita incluir ninguna biblioteca Nuclex para distribuirlos con su juego.(También le permite usar convenientemente el mismo formato XML que las definiciones de fuentes de sprites nativas de XNA).
Dicho esto: no hay nada de malo en agrupar bibliotecas externas con tu juego. No es que se instalen en su sistema ni nada. (Incluso podría ir tan lejos como para fusionar los dos conjuntos).
Y lo mismo ocurre con el código (si le preocupa el control de versiones, por ejemplo). Simplemente puede ingresar
Nuclex.Fonts.Content.TrueTypeImporter.dll
su código fuente. En realidad no es gran cosa.fuente
Podrías usar fuentes de píxeles :
Cuando utiliza una fuente de píxeles con el tamaño de fuente para el que fue diseñada (o un múltiplo entero de ella, por ejemplo, 2x, 3x, 4x), tiene garantizado un texto de píxeles perfectos que no requiere suavizado. Esto significa que nunca tendrá que lidiar con el terrible suavizado que hace que las fuentes sprite de XNA sean tan malas y Nuclex sea mucho mejor. ( Este artículo examina ese problema y los compara)
fuente