コード例 #1
0
    public Quaternion CalcularNuevaRotacion(float deltaTime)
    {
        if (_data.ActitudSolicitada != ActitudRotacion.Ninguna)
        {
            GestionarCambioDeRotacion();
        }

        if ( (maniobra != null) && (maniobra.ManiobraCompletada) )
        {
            _data.Actitud = maniobra.SiguienteActitud;
            maniobra = null;
        }

        switch (_data.Actitud)
        {
            case ActitudRotacion.CaidaLibre: break;
            case ActitudRotacion.Maniobrando: _data.Rotacion = maniobra.CalcularNuevaRotacion(deltaTime); break;
            case ActitudRotacion.EnfocadoATierra: _data.Rotacion = CalcularRotacionATierra(); break;
            case ActitudRotacion.Orbital: _data.Rotacion = CalcularRotacionOrbital(); break;
            default: throw new ArgumentException("Actitud no implementada en CalculadorRotacion2");
        }

        return _data.Rotacion;
    }
コード例 #2
0
    private void RotacionATierra()
    {
        _data.Actitud = ActitudRotacion.Maniobrando;
        Quaternion rotacion = CalcularRotacionATierra();

        maniobra = new ManiobraRotacion(ActitudRotacion.EnfocadoATierra, _data, rotacion);
    }
コード例 #3
0
    private void RotacionOrbital()
    {
        _data.Actitud = ActitudRotacion.Maniobrando;
        Quaternion rotacion = CalcularRotacionOrbital();

        maniobra = new ManiobraRotacion(ActitudRotacion.Orbital, _data, rotacion);
    }