使用VS2012 / 13的monogame加载字体

时间:2013-08-16 07:50:29

标签: .net visual-studio-2012 fonts xna monogame

我已经尝试了一段时间,我相信我正在做的一切(就代码而言):

SpriteFont font = Content.Load<SpriteFont>("Arial");

然而,我读到你需要使用我尝试过的工具编译字体,但它们都是从扩展名* .spritefont转换而来。这似乎不在我的机器上,虽然经过一些研究,我确实设法获得了几个TTF文件。

一些进一步的研究表明,如果我从VS中选择“新文件”,我应该能够选择创建一个新的spritefont。这似乎不是这种情况,因为它不在VS2012或13的列表中。

我没有理由非常使用字体,所以我可能犯了一个明显的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:10)

好的,这是你需要知道的快速破解:

  1. 您可能已经找到了tutorials about how to use sprite fonts in XNA
  2. 您似乎缺少的是XNA Game Studio,一旦安装完毕,您就可以在Visual Studio中选择选项。
  3. 请注意,您实际使用的是“内容项目”。这将用于创建spritefont文件并将它们编译为XNB文件以便在MonoGame中使用。你还需要使用'假的'XNA游戏项目来做到这一点。
  4. 编译完XNB文件后,需要将它们添加到MonoGame项目内容文件夹中,并在属性窗口中将它们设置为Content / Copy。
  5. 之后你的代码应该可行。这是一个带有上述最小值的示例项目: https://dl.dropboxusercontent.com/u/82020056/MonoGameSpriteFonts.zip

    或者,还可以选择跳过XNA Content项目并将MonoGame与原始资产文件一起使用。这就是我在游戏中的操作方式,您可以找到a tutorial on my blog

    编辑:我认为这很重要,可以包含在答案中; MonoGame团队目前正致力于解决方案,因此不需要XNA Game Studio。看起来字体已经被覆盖了。

    https://github.com/mono/MonoGame/wiki/Content-Build-Pipeline

      

    XNA 4.0内容构建管道的端口目前正在开发中。这将允许资产被编译为MonoGame支持的所有平台的优化二进制格式,而无需在Windows PC上安装XNA Game Studio 4.0。资产编译将在项目构建时完成,并在Visual Studio(2010和2012)和MonoDevelop(Windows,Mac OS X和Linux)中均受支持。

答案 1 :(得分:4)

如果你只是想画一个spritefont你不需要VS2010或XNA工作室。

首先手动创建一个.spritefont xml。你可以在这里使用这个例子: http://msdn.microsoft.com/en-us/library/bb447759.aspx

然后使用XNA内容编译器将其编译为.xnb: http://xnacontentcompiler.codeplex.com/

这是一个很好的教程: http://www.youtube.com/watch?v=BwtQn02oy6A 但请注意,您不需要XNA工作室。手动编辑.spritefont xml非常容易。

不要忘记设置内容目录:Content.RootDirectory =“Content”; 并且.xnb属性应该设置为'Content'和'Copy Always'。(至少那是我的Windows 8 MonoGame项目所必需的)