我已经尝试了一段时间,我相信我正在做的一切(就代码而言):
SpriteFont font = Content.Load<SpriteFont>("Arial");
然而,我读到你需要使用我尝试过的工具编译字体,但它们都是从扩展名* .spritefont转换而来。这似乎不在我的机器上,虽然经过一些研究,我确实设法获得了几个TTF文件。
一些进一步的研究表明,如果我从VS中选择“新文件”,我应该能够选择创建一个新的spritefont。这似乎不是这种情况,因为它不在VS2012或13的列表中。
我没有理由非常使用字体,所以我可能犯了一个明显的错误。有什么想法吗?
答案 0 :(得分:10)
好的,这是你需要知道的快速破解:
之后你的代码应该可行。这是一个带有上述最小值的示例项目: 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项目所必需的)