Ejemplo n.º 1
0
        public void FreeModeUpdate(object sender, ElapsedEventArgs e)
        {
            // do rotation
            MouseState mouse = Mouse.GetState();

            mCurrentMousePos.X = mouse.X;
            mCurrentMousePos.Y = mouse.Y;

            Vector2 delta = (mCurrentMousePos - mousePrevPos) * mMouseSensitivity;

            if (delta != Vector2.Zero)
            {
                mCamera.RotateFPS(delta.X, delta.Y);
            }

            // do movement
            KeyboardState keyboardState = Keyboard.GetState();

            mSpeedModifier = keyboardState.IsKeyDown(Key.LShift) ? 2f : 1f;

            mCamera.MoveFPS(GetMovementVector(keyboardState), mFreeModeMoveSpeed * mSpeedModifier);

            // general
            Mouse.SetPosition(parentOriginPoint.X + mWidth / 2, parentOriginPoint.Y + mHeight / 2);
            controller.RenderViewports();

            mousePrevPos = mCurrentMousePos;
        }