【发布时间】:2014-01-28 23:27:57
【问题描述】:
我正在制作一个单人游戏 (2D) 游戏,当我尝试获取鼠标坐标时,它们是错误的。我不知道问题是什么,但这是我获取坐标的代码:
MouseState mouseState;
mouseState = Mouse.GetState();
test = new Tower(TowerTexture, new Vector2(mouseState.X, mouseState.Y));
//test is drawn where mouse pointer is thought to be and it is drawn off
这是塔的绘制代码:
foreach (Tower tower in towers)
{
tower.Draw(spriteBatch);
}
这是塔的绘制函数:
public virtual void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(texture, center, null, Color.White, rotation,
origin, 1.0f, SpriteEffects.None, 0);
}
还有一件事是,作为鼠标指针,真实的指针越靠近左上角,假定鼠标坐标的偏移量就越小,但是随着您越来越接近屏幕的右下角,假定的鼠标坐标鼠标坐标离得更远。 老实说,我不知道出了什么问题,但对可能出问题的任何想法都将不胜感激。谢谢!
【问题讨论】:
-
坐标错了……怎么回事?
-
你能把代码粘贴到你画塔的地方吗?
-
您可能想要提供更多关于
mouseState.X和mouseState.Y返回的位置如何“关闭”的信息。根据文档,返回的坐标是相对于游戏窗口的左上角的。 -
一个值得注意的事情是,当您将鼠标指针移近左上角时,在鼠标指针处绘制的精灵的偏移量变得越来越小,并且随着您将它移得更远并且越靠近屏幕右下角,精灵与真实鼠标指针的偏移量越大。
-
您是否尝试过将游戏设置为全屏,并将
PrefferedBackBufferWidth and Height设置为与显示器相同?