使用VS2012/13的monogame加载字体

Pau*_*els 3 .net fonts xna monogame visual-studio-2012

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

SpriteFont font = Content.Load<SpriteFont>("Arial");
Run Code Online (Sandbox Code Playgroud)

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

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

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

cra*_*mes 10

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

  1. 您可能已经找到了有关如何在XNA中使用精灵字体的教程
  2. 您似乎缺少的是XNA Game Studio,一旦安装完毕,您就可以在Visual Studio中选择选项.
  3. 请注意,您实际所追求的是"内容项目".这将用于创建spritefont文件并将它们编译为XNB文件以便在MonoGame中使用.您还需要使用'假的'XNA游戏项目来执行此操作.
  4. 编译完XNB文件后,需要将它们添加到MonoGame项目内容文件夹中,并在属性窗口中将它们设置为Content/Copy(如果较新).

之后你的代码应该工作.这是一个示例项目,具有上述最小值:https: //dl.dropboxusercontent.com/u/82020056/MonoGameSpriteFonts.zip

或者,还可以选择跳过XNA Content项目并将MonoGame与原始资产文件一起使用.这就是我在游戏中的表现,你可以在我的博客上找到一个教程.

编辑:我认为这很重要,可以包含在答案中; 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)中均受支持.

  • 如果你想使用XNA内容管道,那么是的,你当前需要Visual Studio 2010.XNA不正式支持更新版本的Visual Studio,并且永远不会,因为微软已经放弃了对Framework的支持. (2认同)