0 Members and 1 Guest are viewing this topic.
korben62 a écrit:elles font la taille d'une voiture et elle paraissent minuscule a coté du XB982pour la sortie, je ne saurais pas encore dire quand. il reste encore les hudet je réécris le dll du XB982 pour lui ajouter des fonctions, strobelight, beaconlight, sound3.0je lui ajoute aussi la camera FPS pour se balader à l'interieur (qui est un peu vide, mais ça va s'arranger, peupler unpeu tout ça).Je vais sans doute faire une prérelease, ou chacune des barges sera gérée par spacecraf3 ;vu qu'il permet de programmer les bras manipulateurs des barges.mais je préférerais les programmer moi méme , j'ais dans l'idée une interface à la "remote control"un peut plus intuitive que le clavier (un peu comme les commandes des bras dans un sous marin de poche)mais ça demander beaucoup de travail et de math (aye aye aye j'vais devoir reviser mes cours de robotique)
korben62 a écrit:Tu veut le code des canons du SANKUKAI ?
korben62 a écrit:cette version inclus orbiter sound#include "OrbiterSoundSDK3.h"Dans clbkPostCreation MyID=ConnectToOrbiterSoundDLL3(GetHandle()); RequestLoadVesselWave3(MyID,sons_tirs,"Sound\\SANKUKAI\\tirs.wav",EXTERNAL_ONLY_FADED_CLOSE);Dans clbkSetClassCaps th_fire = CreateThruster (_V(0,0,-4.35), _V(0,0,1),0.0, hpr, 0.0); CreateThrusterGroup (&th_fire, 1, THGROUP_USER); //selection de la texture MAIN_TEX HOVER_TEX etc ..... de spacecraft SURFHANDLE tex = oapiRegisterExhaustTexture ("SANFIRE" ) ; //correspond a [EX_MAIN_n]- [EX_HOVER_n] etc ... de spacecraft AddExhaust (th_fire, 30, 6, _V(14,-0.0,27.5), _V(-0.01,0,1), tex); AddExhaust (th_fire, 30, 6, _V(-14,-0.0,27.5), _V(0.01,0,1), tex); th_boom = CreateThruster (_V(0,0,-4.35), _V(0,0,1),0.0, hpr, 0.0 ) ; CreateThrusterGroup (&th_boom, 1, THGROUP_USER); SURFHANDLE tex4 = oapiRegisterExhaustTexture ("SANBOOM" ) ; AddExhaust (th_boom, 100, 100, _V(0.0,0.0,3500), _V(0,0,1), tex4); th_lazer[0] = CreateThruster (_V(14,0,27.5), _V(0,0,1),0.0, hpr, 0.0); th_lazer[1] = CreateThruster (_V(-14,0,27.5), _V(0,0,1),0.0, hpr, 0.0); CreateThrusterGroup (th_lazer, 2, THGROUP_USER); SURFHANDLE tex5 = oapiRegisterExhaustTexture ("SANlazer" ) ; AddExhaust (th_lazer[0],50, 4,tex5); AddExhaust (th_lazer[1],50, 4,tex5);Dans DefineAnimationsvoid Sankukai::Revertlazer (void){ lazer_status = ((lazer_status == LASER_CLOSED || lazer_status == LASER_CLOSING) ? LASER_OPENING : LASER_CLOSING);}DANS clbkPostStep // animation lasers lazer_status { LASER_CLOSED, LASER_OPEN, LASER_CLOSING, LASER_OPENING} etat bistabe if (lazer_status >= LASER_CLOSING) { double LF = simdt * LASER_FIRING_SPEED; if (lazer_status == LASER_CLOSING) { if (lazer_proc > 0.0) lazer_proc = max (0.0, lazer_proc-LF); else { lazer_status = LASER_CLOSED; explode_proc = 1-lazer_proc;} } else { if (lazer_proc < 1.0) lazer_proc = min (1.0, lazer_proc+LF); else { lazer_status = LASER_OPEN; explode_proc = lazer_proc;} } } if (lazer_status == LASER_OPENING) { double LF = simdt * EXPLODING_SPEED; // vitesse de resorbtion de l'explosion SetThrusterRef (th_lazer[0],_V(14,-0.0,(lazer_dist=lazer_dist+5)));//deplacement du tir 1 SetThrusterRef (th_lazer[1],_V(-14,-0.0,(lazer_dist)));//deplacement du tir 2 if (lazer_dist <= 100) { SetThrusterLevel(th_fire,1.0);// allume le canon tant que le rayon n'a pas atteind 100 m }else SetThrusterLevel(th_fire,0.0);//sinon les eteints SetThrusterLevel(th_lazer[0],1.0);// allume les 2 rayons SetThrusterLevel(th_lazer[1],1.0); if (lazer_dist >= 3500) { SetThrusterLevel(th_boom,lazer_proc);// commence l'explosion quand les rayons on atteints 3000m }else SetThrusterLevel(th_boom,(explode_proc = max (0.0, explode_proc-LF)));; PlayVesselWave3(MyID,sons_tirs,NOLOOP,255,24050); }//sinon continue a resorber l'explosion if (lazer_status == LASER_CLOSING) { double LF = simdt * EXPLODING_SPEED;// vitesse de resorbtion de l'explosion SetThrusterRef (th_lazer[0],_V(14,-0.0,(lazer_dist=lazer_dist+5))); SetThrusterRef (th_lazer[1],_V(-14,-0.0,(lazer_dist))); if (lazer_dist <= 100) { SetThrusterLevel(th_fire,1.0); }else SetThrusterLevel(th_fire,0.0); SetThrusterLevel(th_lazer[0],1.0); SetThrusterLevel(th_lazer[1],1.0); if (lazer_dist >= 3500) { SetThrusterLevel(th_boom,1-lazer_proc); }else SetThrusterLevel(th_boom,(explode_proc = max (0.0, explode_proc-LF))); } if (lazer_status == LASER_CLOSED) { lazer_dist = 27.5; SetThrusterLevel(th_fire,0); SetThrusterLevel(th_lazer[0],0); SetThrusterLevel(th_lazer[1],0); double LF = simdt * EXPLODING_SPEED;// vitesse de resorbtion de l'explosion SetThrusterLevel(th_boom,(explode_proc = max (0.0, explode_proc-LF)));//resorbe l'explosion StopVesselWave3(MyID,sons_tirs); } if (lazer_status == LASER_OPEN) { lazer_dist = 27.5; SetThrusterLevel(th_fire,0); SetThrusterLevel(th_lazer[0],0); SetThrusterLevel(th_lazer[1],0); double LF = simdt * EXPLODING_SPEED;// vitesse de resorbtion de l'explosion SetThrusterLevel(th_boom,(explode_proc = max (0.0, explode_proc-LF))); }