Ejemplo n.º 1
0
        public override void Update(float dt)
        {
            base.Update(dt);

            SlimDX.Vector3 ForwardDir = LookAt - Position;
            SlimDX.Vector3 RightDir   = SlimDX.Vector3.Cross(ForwardDir, Up) * -1.0f;

            BasePosition += ((ForwardDir * _forwardSpeed * FlyRate) + (RightDir * _rightSpeed * FlyRate)) * dt * ((_isShiftDown) ? 0.03f : 1.0f);

            // Get camera position from polar coords, plus camera origin
            var x = MathF.SinF(_phi) * MathF.CosF(_theta);
            var z = MathF.SinF(_phi) * MathF.SinF(_theta);
            var y = MathF.CosF(_phi);

            Position = BasePosition;
            LookAt   = Position + new SlimDX.Vector3(x, y, z);
        }