无法将非默认字体导入monogame

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将非默认字体导入monogame相关的知识,希望对你有一定的参考价值。

我已经尝试了一段时间来导入字体(将其导入Monogame),该字体不是默认设置,并且它无法正常工作。我在Google上搜索了很多次,但没有找到答案。你们中的任何人都可能知道我在做什么吗?

答案

很难在Internet上找到有关此的信息,因为添加了Monogame Pipeline Tool(http://www.monogame.net/documentation/?page=Pipeline)后该过程已经改变。本文档适用于Monogame 3.4。

如何添加字体并在MonoGame 3.4中使用它:

  1. 获取要使用的字体(请检查许可证以确保可以使用它。)]]

  2. 将字体安装到您的操作系统中。

  3. 打开字体控制面板以验证字体的正确名称。提示:它不是文件名,也不一定是字体控制面板主页中字体的名称。

  4. a。右键单击字体并转到属性

    b。注意字体的“标题”:Font Title

    在屏幕快照中,字体为“ Plasmatica”,但字体的控制面板将其显示为“ Plasmatica Regular”。对于其余的部分,我将使用Plasmatica Italic,这在两个地方都相同。

  5. 在MonoGame管道工具中,创建一个“ .spritefont”文件:Add New Item

  6. a。选择“ SpriteFont描述”并为其命名。我建议使用类似“ FontName_FontStyle_FontSize”的示例,例如:PlasmaticaItalic12。

  7. 在文本编辑器中打开新的SpriteFont文件(在MonoGame Pipeline中双击它)。从“字体”控制面板中的字体属性中,将XML节点更改为相同的名称。 SpriteFont XML

  8. 保存并构建您的MonoGame管道项目。如果到目前为止一切正确,那么您应该在输出中看到这一点:

  9. c:/ [内容目录的路径] /Content/GUI/Fonts/PlasmaticaItalic12.spritefont

    建筑字体C: WINDOWS Fonts PlasmaNormalItalic.ttf

    使用DXT压缩

  10. 现在您的代码可以使用以下命令加载和使用字体:

  11. SpriteFont字体= Content.Load(“ Gui / Fonts / PlasmaticaItalic12”);

    spriteBatch.DrawString(font,“ Hello World!”,Vector2(0,0),Color.White);

    //其中Content是Game类的Content变量(类型:ContentManager)-主类的子类游戏类-在所有示例中为game1.cs。 spriteBatch就是SpriteBatch。

    P.S。如果遇到问题,请检查以确保管道工具的输出包含在您的项目中。我的被​​称为“ Content.mgcb”。自从我从Monogame的一个样本开始以来,就包括了我的。您可能应该将它“到位”到Visual Studio中-意味着不要“添加现有文件”,因为那样会产生副本。您需要一个实际的链接或包含文件的目录结构。修复文件的属性(在VS中),以将生成操作设置为“ MonoGameContentReference”。将“复制到输出目录”设置为“不复制”

祝你好运!到目前为止,我很喜欢Monogame,但正确设置所有零件有点复杂。

另一答案

我在3.7.1.189中遇到了相同的问题,并通过右键单击字体.otf文件并选择“为所有用户安装”来解决。您可能会收到UAC提示,单击“允许”或“是”。这个为我修复了MonoGame的管道工具,因此我可以使用自定义字体。

以上是关于无法将非默认字体导入monogame的主要内容,如果未能解决你的问题,请参考以下文章

如何导入字体?

如何将非抗锯齿字体渲染到内部图像?

python画图已定义字体但还是显示当前front字体中缺少

如何把Word2007公式中的字体默认设置为斜体?

Xcode。西布。为文本元素设置默认字体

Windows 中的 JTextArea 默认字体非常小