/// <summary> /// Script for tracking key inputs to move the player /// </summary> private async Task MovementScript() { float dragX = 0f, dragY = 0f; double time = UpdateTime.Total.TotalSeconds; Input.ResetMousePosition(); while (IsRunning) { await Script.NextFrame(); //Else the player slows down on a lower framerate var diff = UpdateTime.Total.TotalSeconds - time; time = UpdateTime.Total.TotalSeconds; if (Input.IsKeyDown(Keys.W)) { PlayerMovement.Add(Direction.Foward); } if (Input.IsKeyDown(Keys.S)) { PlayerMovement.Add(Direction.Back); } if (Input.IsKeyDown(Keys.A)) { PlayerMovement.Add(Direction.Left); } if (Input.IsKeyDown(Keys.D)) { PlayerMovement.Add(Direction.Right); } if (Input.IsKeyDown(Keys.Q)) { PlayerMovement.Add(Direction.Up); } if (Input.IsKeyDown(Keys.E)) { PlayerMovement.Add(Direction.Down); } PlayerMovement.Move(diff); //Move the 'camera' dragX *= .01f; dragY *= .01f; dragX += (Input.MousePosition.X - .5f) * .3f; dragY += (Input.MousePosition.Y - .5f) * .3f; if (Input.ResetMousePosition()) { PlayerMovement.YawPitch(dragX, dragY); } } }