Et bien ca y'est. Mon voyage spatial touche a sa fin. J'ai bricole mon Dll pour avoir de la trainee et... de la portance (fonction LiftCoeff). mon vaisseau n'avait aucune valeur pour les coefficient lift et drag si bien qu'il arrivait dans l'atlantique a la vitesse de 4500m/s (marrant mais genant pour recuperer le materiel en bon etat).
J'arrive a obtenir une vitesse de 500m/s a 5Km de la surface. Je suis en train de bricoler un parachute pour reduire la vitesse a moins de 20m/s. En gros ca donne ca =>
const VECTOR3 OFS_PARA = {0.0,0.0,-16.513};
if (Altitude <= 5000 && AirSpeed <= 500) //Altitude et vitesse assez basses, le parachute se deploie
{
SetMeshVisibilityMode (InsertMesh ("TI\\Parachute",7,&OFS_PARA),MESHVIS_EXTERNAL);
}
else if (Altitude <= 100 &&)
{
DelMesh(7);
}
Donc pas de probleme pour le mesh. Pour le coefficient de trainee induit par l'ouverture du parachute, j'ai fait des recherches dans l'API et j'ai trouve cette fonction
void CreateVariableDragElement (double *drag, double factor, const VECTOR3 &ref) const;
Cette fonction pratique permet si j'ai bien compris de generer de la trainee supplementaire quand par exemple le train d'atterrissage sort ou les aerobrakes sont abaisses (et donc me suis-je dit, a l'occasion, pour la sortie d'un parachute). J'ai regarde l'exemple du DeltaGlider dans la SDK pour voir comment etait utilise cette fonction.
Je la declare dans clbkSetClassCaps
CreateVariableDragElement (&ParaDeployed, 10, _V(0,0,-30));
A 30m derriere mon vaisseau (-30) le parachute se deploie. Le pointeur doit renvoyer selon l'API a une valeur "double" comprise entre 0 (pas de trainee) et 1 (trainee maximale). Je le renvoie donc a la variable ParaDeployed que j'ai initialisee dans ma ClassVessel et je rajoute dans mon code ParaDeployed = 1
const VECTOR3 OFS_PARA = {0.0,0.0,-16.513};
if (Altitude <= 5000 && AirSpeed <= 500) //Altitude et vitesse assez basses, le parachute se deploie
{
SetMeshVisibilityMode (InsertMesh ("TI\\Parachute",7,&OFS_PARA),MESHVIS_EXTERNAL);
ParaDeployed = 1;
}
else if (Altitude <= 100 &&)
{
DelMesh(7);
}
Et devinez quoi ? Ca ne marche pas
Ou bien les lois de la physique sont definitivement impenetrables, ou bien, et je pencherais davantage pour cette eventualite, je me suis lamentablement viande dans mon raisonnement
Je continue de chercher.
Merci de me venir en aide:)