【发布时间】:2012-10-20 23:20:30
【问题描述】:
好吧,我一直在尝试根据右下角设置 spritefont 的位置,但是,当我设置它时,我将它设置为 10,10,我什至不会看到它,如果我将其设置为 40,40 我刚开始能够看到右下角...我认为我做得对...这是我的代码:
public void DrawFont(SpriteBatch spriteBatch)
{
spriteBatch.DrawString(gameFont, fontText, fontPos, fontColor);
}
fontPos 是左上角。这是在它自己的类中。然后我有另一种方法(在同一类中):
public void setBottomRight(Vector2 newVector2)
{
fontPos.X = newVector2.X - gameFont.MeasureString(fontText).X;
fontPos.Y = newVector2.Y - gameFont.MeasureString(fontText).Y;
}
我在 Game.cs 类的更新方法中使用它,并将向量设置为 10,10 处的新向量,但我看不到文本,我检查它是否只是一个间隙我的文字,它不是。
我觉得这是对的……还是我犯了一个愚蠢的错误……?还是 MeaureString 方法不提供边到边的长度?
谢谢!
【问题讨论】:
-
高度始终相同,等于行高。如果它的字体很大,你的字符和字体底部之间的差距可能很大。
-
可以发截图吗?您是否要在屏幕右下角绘制文本?
-
在哪里以及如何调用 setBottomRight 方法?
-
数学看起来是对的。确保您的 fontText 字符串在测量时不为空。根据你的字体大小,为什么你应该看到比底角更多的 10,10?如果你在屏幕的左上角画一个右下角的字符串,它当然会大部分被切断。在 10,10 时,除非您的字体很小,否则我不会期望看到太多。