Mattez moi ça !!!!!!!!!!!!!!!!!
Zoulie texture de projecteur.....et...........................
Hé oui un Zouli STROBE ROTATIF ROUGE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Maintenant je m'attaque aux mouvement de camera !!!!
La creation du th_strobe en groupe th_user avec la texture qui va bien
th_strobe = CreateThruster (_V(0,0,-4.35), _V(0,0,1),0.0001, hpr, PB_ISP);
CreateThrusterGroup (&th_strobe, 1, THGROUP_USER);
SURFHANDLE tex3 = oapiRegisterExhaustTexture ("xbstrobe" ) ;
AddExhaust (th_strobe,10, 2,tex3);
// notez ici pas de vecteur reférence ni de vecteur direction dans addexhaust
voila le code rajouté au controle clavier:
case OAPI_KEY_K: // Sas inferieur
SetThrusterRef (th_strobe, _V(0.0,-8,0.0));
SetThrusterLevel(th_strobe,1);
RevertSas();
return 1;
et celui des animations
if (sasinf_status >= SAS_CLOSING) {
double ds = simdt * SAS_OPERATING_SPEED;
double stro = simdt * STROBE_ROT;// variable double nb de tours 0>simdt>1
strobe_proc = strobe_proc + stro;
if (sasinf_status == SAS_CLOSING) {
if (sasinf_proc > 0.0) sasinf_proc = max (0.0, sasinf_proc-ds);
else sasinf_status = SAS_CLOSED;
} else {
if (sasinf_proc < 1.0) sasinf_proc = min (1.0, sasinf_proc+ds);
else sasinf_status = SAS_OPEN;
}
SetAnimation (anim_sasinf, sasinf_proc);
SetThrusterDir(th_strobe,_V( sin(strobe_proc),0.22,cos(strobe_proc)));
//rotation du strobe pendant ouverture
}
if (sasinf_status >= SAS_CLOSING) {
double da = simdt * SAS_OPERATING_SPEED;
double stro = simdt * STROBE_ROT;
strobe_proc1 = strobe_proc1 + stro;
if (sasinf_status == SAS_CLOSING) {
if (sasinf_proc > 0.0) sasinf_proc = max (0.0, sasinf_proc-da);
else sasinf_status = SAS_CLOSED;
} else {
if (sasinf_proc < 1.0) sasinf_proc = min (1.0, sasinf_proc+da);
else sasinf_status = SAS_OPEN;
}
SetAnimation (anim_sasinf, sasinf_proc);
SetThrusterDir(th_strobe,_V( sin(strobe_proc1),0.22,cos(strobe_proc1)));
//He oui c'est des radians sinus en x , cosinus en z varient de -1 a +1 inversement ====>Ca tourne!!
}//rotation du strobe pendant fermeture
if (sasinf_status == SAS_CLOSED) {
SetThrusterLevel(th_strobe,0);// ici j'eteins le strobe quand le sas est fermé
}
if (sasinf_status == SAS_OPEN) {
SetThrusterLevel(th_strobe,1);
double da = simdt * SAS_OPERATING_SPEED;
double stro = simdt * STROBE_ROT;
strobe_proc1 = strobe_proc1 + stro;
SetThrusterDir(th_strobe,_V( sin(strobe_proc1),0.22,cos(strobe_proc1)));
}//la je le laisse tourner tant que le sas est ouvert
Bientot j'ouvre une salle de cours ROFLMAO !!