Exemplo n.º 1
0
        /// <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);
                }
            }
        }