Advertisement
Guest User

ExampleInput.cs

a guest
Mar 26th, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.70 KB | None | 0 0
  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Input;
  3. using System;
  4.  
  5. namespace Game1
  6. {
  7.     internal static class ExampleInput
  8.     {
  9.         static MouseState previousMouseState;
  10.         #region Extension Methods
  11.         internal static int DeltaX(this MouseState mouseState)
  12.         {
  13.             return Mouse.GetState().X - previousMouseState.X;
  14.         }
  15.         internal static int DeltaY(this MouseState mouseState)
  16.         {
  17.             return Mouse.GetState().Y - previousMouseState.Y;
  18.         }
  19.         internal static int DeltaScrollWheelValue(this MouseState mouseState)
  20.         {
  21.             return Mouse.GetState().ScrollWheelValue - previousMouseState.ScrollWheelValue;
  22.         }
  23.         internal static bool Moving(this MouseState mouseState)
  24.         {
  25.             return (Mouse.GetState().X != previousMouseState.X || Mouse.GetState().Y != previousMouseState.Y) ? true : !true;
  26.         }
  27.         #endregion
  28.         internal static void Update()
  29.         {
  30.             CameraMovement();
  31.             // Call last so all other methods have previous states when called.
  32.             previousMouseState = Mouse.GetState();
  33.         }
  34.         static void CameraMovement()
  35.         {
  36.             if (Mouse.GetState().DeltaScrollWheelValue() != 0)
  37.             {
  38.                 Game1.mainCamera.destination += (Mouse.GetState().DeltaScrollWheelValue() * (float)Game1.gameTime.ElapsedGameTime.TotalSeconds * Game1.mainCamera.transform.Matrix.Forward * 100);
  39.                 Console.Clear();
  40.                 Console.WriteLine("Input manager thinks forward is: " + Game1.mainCamera.View.Forward);
  41.             }
  42.             if (Mouse.GetState().DeltaX() != 0 && Mouse.GetState().MiddleButton == ButtonState.Pressed)
  43.             {
  44.                 Game1.mainCamera.destination += Mouse.GetState().DeltaX() * (float)Game1.gameTime.ElapsedGameTime.TotalSeconds * Game1.mainCamera.View.Right * 100;
  45.             }
  46.             if (Mouse.GetState().DeltaY() != 0 && Mouse.GetState().MiddleButton == ButtonState.Pressed)
  47.             {
  48.                 Game1.mainCamera.destination += -Mouse.GetState().DeltaY() * (float)Game1.gameTime.ElapsedGameTime.TotalSeconds * Vector3.Up * 100;
  49.             }
  50.             if (Mouse.GetState().Moving() && Keyboard.GetState().IsKeyDown(Keys.LeftAlt))
  51.             {
  52.                 // Rotate the camera.
  53.                 // **This is the part I have no clue how to rotate properly**
  54.                 Game1.mainCamera.transform.Rotation = Quaternion.Concatenate(Game1.mainCamera.transform.Rotation, Quaternion.CreateFromAxisAngle(Game1.mainCamera.View.Up, Mouse.GetState().DeltaX() * (float)Game1.gameTime.ElapsedGameTime.TotalSeconds * 15));
  55.             }
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement