Пример #1
0
        /// <summary>
        /// Lógica del juego. Actualiza posiciones, estados, etc.
        /// </summary>
        /// <param name="dt">Tiempo desde la última ejecución</param>
        public void Update(float dt)
        {
            // Comando de resetear el juego
            if (reset)
            {
                Reset();
                return;
            }

            // Control de saltos en casos de bajo rendimiento y pérdida del foco
            if (dt > 0.1f)
            {
                dt = 0.1f;
            }

            player.Update(dt);

            // Extraigo los ejes del avion de su matriz transformación
            Vector3 plane = player.GetPosition();
            Vector3 z     = player.ZAxis();
            Vector3 y     = player.YAxis();
            Vector3 x     = player.XAxis();

            GuiController.Instance.UserVars.setValue("Posición en X", plane.X);
            GuiController.Instance.UserVars.setValue("Posición en Y", plane.Y);
            GuiController.Instance.UserVars.setValue("Posición en Z", plane.Z);

            GuiController.Instance.UserVars.setValue("Avión respecto a X", x);
            GuiController.Instance.UserVars.setValue("Avión respecto a Y", y);
            GuiController.Instance.UserVars.setValue("Avión respecto a Z", z);

            Vector3 camera;
            Vector3 target;

            camera = plane + CAM_DELTA.Y * y + CAM_DELTA.Z * z;
            target = plane + CAM_DELTA.Y * y;
            cam.SetCenterTargetUp(camera, target, y);
        }