【发布时间】:2013-06-22 00:36:48
【问题描述】:
我正在使用 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
【问题讨论】:
-
fontMenu 是什么样的?
Mouse.GetState()是否返回屏幕空间或窗口空间中的鼠标坐标? -
我不确定它在哪个参考中给了我坐标,因为即使我将鼠标移到屏幕的 0,0 位置(左角),它仍然会像周围一样给出 Y 减号 - 300
-
@asawyer GetState() 返回一个相对于游戏窗口的值。
-
你是在某种 while(true) 循环中调用 draw 方法还是只调用一次?这可能是一个愚蠢的评论,但如果你不一直重绘你的 XNA 应用程序,项目就不会移动..
标签: xna mouseevent