我正在使用XNA 3.1进行游戏开发,我对鼠标位置没有什么问题,我也提供了问题的屏幕截图,现在在下面的代码中我试图显示文本“开始”完全在鼠标位置,但文本的位置距光标大约200-250像素,而不是光标在游戏窗口的同一点。
void MenuMainMenuDraw()
{
// Main Menu After Draw
// Menu Option After Draw
MouseState ms = Mouse.GetState();
spriteBatch.DrawString(fontMenu, "Start"
, new Vector2(ms.X, ms.Y)
, Color.Red);
spriteBatch.DrawString(fontMenu, "Options"
, new Vector2((float)MENU_GLOBAL.MENU_POSITION_X, (float)MENU_GLOBAL.OPTION_POSITION_Y)
, Color.Red);
spriteBatch.DrawString(fontMenu, "Leader's Board"
, new Vector2((float)MENU_GLOBAL.MENU_POSITION_X, (float)MENU_GLOBAL.HIGHSCORE_POSITION_Y)
, Color.Red);
}
问候 MGD
答案 0 :(得分:2)
我可以想到几个可能的原因。我发布的代码段无法看到任何直接错误,因此如果这些内容都无法解决,请发布更多代码。
使用默认字体外观创建新SpriteFont
时是否会出现同样的问题?对于您当前使用的字体中的间距可能存在问题。
您的spriteBatch.Begin(...)
代码中是否提供了transformMatrix?如果是这样,请尝试使用不带参数的spriteBatch.Begin()
。您是否正在做一些不寻常的事情,例如在您的SpriteBatch绘图中应用Effect
?
您是否正在绘制渲染目标,然后重新绘制到屏幕上?
答案 1 :(得分:0)
如果我的游戏窗口实际上比我正在运行游戏的计算机屏幕的分辨率大,我的鼠标位置问题似乎很奇怪。它是一个快速检查,但它可能会有所帮助。 (还记得XNA从中心点绘制图像,但我相信默认情况下从文本的左上角绘制测试)。希望有所帮助