0

在我的应用程序中,我想添加使用自定义字体的功能。

用户从我的服务器上的列表中选择字体,下载并在应用程序中使用。

如何执行将呈现字体的应用程序部分?如何在不使用 xaml 的应用程序中执行此操作?

4

1 回答 1

0

您即将开始的任务可能会涉及大量代码,因为字体中的字符需要先渲染到纹理,然后才能渲染为 SpriteBatch 的一部分。

通常,这通过内容管道在 XNA 中起作用。您选择一个字体文件并在 XML 中设置字体属性,然后内容内容管道将此信息编译为可以加载和呈现的 xnb 资源。问题是,这一切都发生在编译时,因此在运行时很难做到。

参考:http ://rbwhitaker.wikidot.com/drawing-text-with-spritefonts

另一种方法是使用 BMFont 之类的工具将字体预渲染到纹理并编写自己的渲染器。我曾经使用这种技术写过一个教程。然而,这几乎是一样的,只是您用 BMFont 工具替换了 XNA 内容管道。

http://www.craftworkgames.com/blog/tutorial-bmfont-rendering-with-monogame/

考虑到这一点,如果您想实现这一点,您可能需要编写自己的代码,以便在运行时加载每种字体后将其渲染为纹理。在加载字体时,您还需要跟踪纹理上每个字形的矩形。为了节省纹理空间并支持更大的字体大小,您可能还需要考虑纹理打包和排除某些字符。

于 2013-01-15T22:46:29.763 回答