在XNA中设置SpriteFont的右下角



好吧,我一直在尝试基于右下角设置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方法不提供从边缘到边缘的长度?

谢谢!

您的原始逻辑几乎是正确的。唯一不正确的是测量值。测量线的Y值返回弦的垂直尺寸的两倍。因此,如果您的尺寸为14作为字符串,它将返回28.这意味着,而不是给您高度,它会给您带来双倍的屏幕字符串。更换

fontPos.Y = newVector2.Y - gameFont.MeasureString(fontText).Y;

fontPos.Y = newVector2.Y - gameFont.MeasureString(fontText).Y/2;

将解决您的问题!

最新更新