public void RecalculateStuff() { // Punto de máximo rendimiento de la curva longitudinal original m_forwardFrictionPeak = CarWheelFriction.GetPeakValue(CarWheelFriction.MCforward, ForwardWheelFriction.grip, ForwardWheelFriction.gripRange, ForwardWheelFriction.drift); // Punto de máximo rendimiento de la curva lateral m_sidewaysFrictionPeak = CarWheelFriction.GetPeakValue(CarWheelFriction.MCsideways, SidewaysWheelFriction.grip, SidewaysWheelFriction.gripRange, SidewaysWheelFriction.drift); }
// Obtener la pendiente corregida de la curva en la asíntota para que la rueda se comporte correctamente // Requerimientos: // - Rueda en el suelo // - absSlip es el slip actual en valor absoluto float GetFixedSlope(float[] Coefs, float absSlip, float asymSlip, float asymValue, float valueFactor) { float Slope; // Valor en el punto de la asíntota. Es el que mantendremos idependientemente de la cantidad de desplazamiento. float Value = CarWheelFriction.GetValue(CarWheelFriction.MCsideways, asymValue / m_DeltaTimeFactor, asymSlip); // Nueva pendiente que mantiene el valor con el desplazamiento actual de la rueda aplicando la pendiente controlada indicada (valueVactor) Slope = CarWheelFriction.GetSlope(CarWheelFriction.MCsideways, absSlip, Value + (absSlip - asymSlip) * valueFactor) * m_DeltaTimeFactor; return(Slope); }
public Vector2 getSidewaysMax() { return(new Vector2(m_wheel.sidewaysFriction.asymptoteSlip, CarWheelFriction.GetValue(CarWheelFriction.MCsideways, m_wheel.sidewaysFriction.asymptoteValue, m_wheel.sidewaysFriction.asymptoteSlip))); }