在XNA中,spritefont技术太可怕了。Nuclex的工作做得好得多,但我不想有任何外部参考,我的游戏几乎完成了。
当使用Sansation或Quicksand等字体时,较小的字体看起来很糟糕。太糟糕了!
是否有已知的解决方法?我尝试将fontsize设置为极高,然后在spritebatch中按比例缩小它们,但是没有运气。
在XNA中,spritefont技术太可怕了。Nuclex的工作做得好得多,但我不想有任何外部参考,我的游戏几乎完成了。
当使用Sansation或Quicksand等字体时,较小的字体看起来很糟糕。太糟糕了!
是否有已知的解决方法?我尝试将fontsize设置为极高,然后在spritebatch中按比例缩小它们,但是没有运气。
Answers:
XNA 允许您将纹理导入为spritefont。如果在良好的图像编辑程序中手动放置每个字符,而不是依赖XNA生成的Sprite表,则可能会在字体中获得更好的提示和消除锯齿效果。
XNA sprite字体处理器使用DXT3压缩,不能与XNA 4.0中新的预乘alpha一起很好地工作。因此,文本的块状外观。
Nuclex Sprite字体处理器输出的数据完全相同,只是Texture2D
保存字体位图数据的内部没有压缩-因此没有质量问题。
由于来自Nuclex处理器的数据具有相同的格式,因此XNA SpriteFont
阅读器可以读取该数据,并且您无需包括任何Nuclex库即可在游戏中分发。
(它还使您可以方便地使用与XNA的本机sprite字体定义相同的XML格式。)
话虽这么说:将外部库与游戏绑定在一起没有任何问题。并不是说它们已安装在您的系统上或任何东西上。(甚至可以合并两个程序集)。
代码也是如此(例如,如果您担心版本控制)。您只需输入Nuclex.Fonts.Content.TrueTypeImporter.dll
源代码即可。实际上这没什么大不了的。