У меня есть моноигра (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, отключено. Согласно документации возвращаемые координаты относятся к верхнему левому углу окна игры. - person Paige DePol   schedule 29.01.2014PrefferedBackBufferWidth and Heightтаким же, как у монитора? - person davidsbro   schedule 29.01.2014graphicsdevice.PresentationParameters.PreferredBackBufferWidthиgraphics.IsFullScreen, а также проверил разрешение самого монитора компьютера. Я очень сомневаюсь, что Mouse.Getstate возвращает неправильные значения. Я бы также попробовал свою игру на другом компьютере, если бы мог. - person davidsbro   schedule 29.01.2014