My mouse is able to move the camera and rotate it around my model. If the mouse is in the middle of the screen, the camera should not move.
The red circle is where my mouse has to be at in order for the camera to stay still. If I put the cursor in the middle of the screen, it rotates the camera which shouldn't happen.
Point screenCenter;
float scrollRate = 1.0f;
MouseState previousMouse;
bool moveMode = false;
#region MOUSE
screenCenter.X = this.Window.ClientBounds.Width / 2;
screenCenter.Y = this.Window.ClientBounds.Height / 2;
this.IsMouseVisible = true;
previousMouse = Mouse.GetState();
Mouse.SetPosition(screenCenter.X, screenCenter.Y);
#endregion MOUSE
if (this.IsActive)
{
MouseState mouse = Mouse.GetState();
if (moveMode)
{
Vector3 temp = player.playerWorld.Translation;
player.playerWorld.Translation = Vector3.Zero;
player.playerWorld *= Matrix.CreateRotationY(MathHelper.ToRadians(mouse.X - screenCenter.X) / 75);
player.playerWorld.Translation = temp;
cam.up -= MathHelper.ToRadians(mouse.Y - screenCenter.Y) / 25;
}
if (mouse.RightButton == ButtonState.Pressed)
{
if (graphics.GraphicsDevice.Viewport.Bounds.Contains(new Point(mouse.X, mouse.Y)))
{
moveMode = true;
}
}
else
{
if (moveMode)
{
moveMode = false;
}
}
if (mouse.ScrollWheelValue - previousMouse.ScrollWheelValue != 0)
{
float wheelChange = mouse.ScrollWheelValue - previousMouse.ScrollWheelValue;
cam.up += 0.7f;
cam.backward += 0.7f;
}
previousMouse = mouse;
}
Why could this be happening? the screen is 650X1000. ScreenCenter x and y are the correct values.
Now that I play with it more, it seems each time the game starts, the mouse is set to a different position. The mouse should automatically be set to the middle of the screen each time the game starts, but it ends up anywhere but the middle.
Any idea of what could be happening here?