.net 在VS2012/13中使用monogame加载字体
我已经尝试了一段时间,我相信我做的每件事都是正确的(就代码而言):.net 在VS2012/13中使用monogame加载字体,.net,visual-studio-2012,fonts,xna,monogame,.net,Visual Studio 2012,Fonts,Xna,Monogame,我已经尝试了一段时间,我相信我做的每件事都是正确的(就代码而言): SpriteFont=Content.Load(“Arial”); 然而,我后来读到,您需要使用工具编译字体,我尝试过,但它们都是从扩展名*.spritefont转换而来的。这似乎不在我的机器上,尽管经过一些研究,我确实设法获得了一些TTF文件 一些进一步的研究表明,如果我从VS中选择“新文件”,我应该能够选择创建一个新的spritefont。情况似乎并非如此,因为VS2012或VS13都不在列表中 我没有理由经常使用字体,所
SpriteFont=Content.Load(“Arial”);
然而,我后来读到,您需要使用工具编译字体,我尝试过,但它们都是从扩展名*.spritefont转换而来的。这似乎不在我的机器上,尽管经过一些研究,我确实设法获得了一些TTF文件
一些进一步的研究表明,如果我从VS中选择“新文件”,我应该能够选择创建一个新的spritefont。情况似乎并非如此,因为VS2012或VS13都不在列表中
我没有理由经常使用字体,所以我可能犯了一个明显的错误。有什么想法吗?好的,下面是你需要知道的内容:
如果你只想画一个精灵,你不需要VS2010或XNA工作室 首先手动创建.spritefont xml。您可以使用以下示例: 然后使用XNA内容编译器将其编译为.xnb: 以下是一个很好的教程: 但请注意,您不需要XNA studio。手工编辑.spritefont xml非常容易 不要忘记设置内容目录:content.RootDirectory=“content”;
并且.xnb属性应该设置为“Content”和“Copy Always”。(至少这是我的Windows 8 MonoGame项目所必需的)我认为您不再需要XNA了 只需双击Content.mgcb即可打开内容编辑器 右键单击内容->添加->新项目->Spritefont描述,为其命名,例如“testfont” 在游戏中加载您的spritefont:
var font = Content.Load<SpriteFont>("testfont");
我确实遇到过XNA游戏工作室,但它似乎需要VS2010,所以我认为这已经过时了。我真的需要安装VS2010吗?如果您想使用XNA内容管道,那么是的,您当前需要Visual Studio 2010。XNA不正式支持较新版本的Visual Studio,而且永远也不会,因为Microsoft已经放弃了对该框架的支持。我想补充一点,MonoGame团队正在努力更换内容管道,因此不应该总是这样。我们需要将testfont编译成XNB吗?在这里似乎不起作用。编译器会抛出一个错误,就好像它无法访问内容文件夹一样(显然是这样,因为它会像应该的那样将spritefont编译成.xnb,但它仍然不能在游戏中绘制)。DrawString方法没有任何错误,但没有绘制字符串。奇怪的还有人知道这个吗?
var font = Content.Load<SpriteFont>("testfont");
spriteBatch.DrawString(font, "hello", new Vector2(10, 10), Color.AliceBlue);