1

我正在制作一个新游戏,我想使用我自己的文本纹理。我遇到了这个很酷的工具,叫做 SpriteFont 2.0,它就像一个所见即所得的编辑器,用于为 XNA 中的 SpriteFont 文件制作纹理文件。我做了这个字体:我的字体纹理

但我的问题是,当我将它放入 XNA 时,字母之间有很多额外的空间。例如,这应该说“这是一个测试”,但结果是这样的:在此处输入图像描述

我的纹理文件是否有问题,或者我的编程需要做些什么。SpriteBatch我只是在对象中使用了第一个 DrawString 方法。我也将纹理文件的内容导入更改为 Sprite Font Texture。我不知道为什么文本在字符之间有这么多的空间。

4

1 回答 1

4

您可以在运行时更改 SpriteFont 对象的Spacing 属性。将其设置为负值并查看字母是否更靠近。

SpriteFont myFont = ...;
myFont.Spacing = -10;

或者,如果编辑器具有字距调整设置,那么这就是您真正想要的。Kerning 定义字母之间的间距,如下所示:

字距调整示例


如果您在屏幕上打印多行(作为一个绘图调用),您可能还需要调整垂直高度的LineSpacing 属性。

于 2012-10-04T02:45:57.510 回答