Exemple #1
0
 protected override void OnSizeChanged(EventArgs e)
 {
     base.OnSizeChanged(e);
     HudDescription = new HudDescription(
         cameraEnabled: HudDescription.CameraEnabled,
         width: Size.Width,
         height: Size.Height,
         zFar: HudDescription.ZFar,
         zNear: HudDescription.ZNear,
         multithreaded: true
         );
 }
Exemple #2
0
        public static Hud FromDescription(Device device, HudDescription description)
        {
            Hud hud = new Hud
                          {
                              AbsolutePosition = Vector2.Zero,
                              Size = new Size(description.Width, description.Height),
                              HudDescription = description,
                              Depth = new Depth
                                          {
                                              WindowLayer = (int) description.ZFar,
                                              ComponentLayer = (int) description.ZFar,
                                              ZOrder = description.ZFar
                                          },
                          };
            Device = device;

            if (description.CameraEnabled)
            {
                ICamera camera = Game.CurrentRenderer.Camera;
                hud.SetBinding(new KeyBinding(KeyAction.StrafeLeft, Keys.A, delegate() { camera.Strafe(-QuaternionCam.DefaultSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.StrafeRight, Keys.D, delegate() { camera.Strafe(QuaternionCam.DefaultSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.MoveForward, Keys.W, delegate() { camera.Move(QuaternionCam.DefaultSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.MoveBackward, Keys.S, delegate() { camera.Move(-QuaternionCam.DefaultSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.RotateLeft, Keys.Z, delegate() { camera.RotateY(QuaternionCam.DefaultRotationSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.RotateRight, Keys.C, delegate() { camera.RotateY(-QuaternionCam.DefaultRotationSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.HoverUp, Keys.Q, delegate() { camera.Hover(QuaternionCam.DefaultSpeed); }));
                hud.SetBinding(new KeyBinding(KeyAction.HoverDown, Keys.E, delegate() { camera.Hover(-QuaternionCam.DefaultSpeed); }));

                if (Game.Context.Settings.IsStereo)
                {
                    StereoCamera stereoCamera = (StereoCamera)camera;
                    hud.SetBinding(new KeyBinding(KeyAction.IncreaseSeparation, Keys.Add,
                        delegate() { stereoCamera.ModifySeparation(StereoCamera.DefaultIncrement); }));
                    hud.SetBinding(new KeyBinding(KeyAction.DecreaseSeparation, Keys.Subtract,
                        delegate() { stereoCamera.ModifySeparation(-StereoCamera.DefaultIncrement); }));
                    hud.SetBinding(new KeyBinding(KeyAction.DecreaseConvergence, Keys.Divide,
                        delegate() { stereoCamera.ModifyConvergence(-StereoCamera.DefaultIncrement); }));
                    hud.SetBinding(new KeyBinding(KeyAction.IncreaseConvergence, Keys.Multiply,
                        delegate() { stereoCamera.ModifyConvergence(StereoCamera.DefaultIncrement); }));
                    hud.SetBinding( new KeyBinding(KeyAction.None, Keys.F,
                    delegate() { Game.Context.ResizeDevice(new Size(1920,1080), true); }));

                }
            }

            return hud;
        }