See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Barges du xb982  (Read 4040 times)

0 Members and 1 Guest are viewing this topic.

Offline korben62

  • Hero Member
  • *****
  • Posts: 561
  • Karma: 0


Offline Jekka

  • Legend
  • ******
  • Posts: 1172
  • Country: Switzerland ch
  • Karma: 3
Reply #1 - 09 September 2006, 16:26:13
8o !! Ca tourne dans orbiter ça ? En tout cas c'est très beau ! :top:


Offline Papyref

  • Legend
  • ******
  • Posts: 5341
  • Country: France fr
  • Karma: 341
  • Je suis dans la Lune ne pas me déranger
Reply #2 - 09 September 2006, 18:53:08
Magnifique ! Très belle réalisarion

:turning: Papyref


Offline Profil supprimé

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
Reply #3 - 09 September 2006, 19:07:32
Comme d'hab, tu nous fais de la très bonne qualité. Bravo.



Offline Extincteur

  • Legend
  • ******
  • Posts: 1170
  • Karma: 0
Reply #4 - 09 September 2006, 19:38:58
c'est russi bravo! a quand la sortie?



Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #5 - 09 September 2006, 22:58:29
Encore un vaisseau de fou ! ;) Moi je suis sous le charme ! Bravo !



Offline korben62

  • Hero Member
  • *****
  • Posts: 561
  • Karma: 0
Reply #6 - 10 September 2006, 01:09:16
elles font la taille d'une voiture et elle paraissent minuscule a coté du XB982
pour la sortie, je ne saurais pas encore dire quand. il reste encore les hud
et je réécris le dll du XB982 pour lui ajouter des fonctions, strobelight, beaconlight, sound3.0
je lui ajoute aussi  la camera FPS pour se balader à l'interieur (qui est un peu vide, mais ça va s'arranger, peupler un
peu 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)




Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #7 - 10 September 2006, 01:13:25
Quote
korben62 a écrit:
elles font la taille d'une voiture et elle paraissent minuscule a coté du XB982
pour la sortie, je ne saurais pas encore dire quand. il reste encore les hud
et je réécris le dll du XB982 pour lui ajouter des fonctions, strobelight, beaconlight, sound3.0
je lui ajoute aussi  la camera FPS pour se balader à l'interieur (qui est un peu vide, mais ça va s'arranger, peupler un
peu 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)


Et bah bon courage car il en faut ! ;) C excellent quand meme de pouvoir expérimenter par mal de chose en c++. Je
vais bosser un peu sur le tir de canon (genre canon laser de vaisseau mère), on va voir de quoi le sdk est capable ;)
J'ai hate de voir tes évolutions en tout cas, ça promet !



Offline korben62

  • Hero Member
  • *****
  • Posts: 561
  • Karma: 0
Reply #8 - 10 September 2006, 01:25:42
Tu veut le code des canons du SANKUKAI ?




Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #9 - 10 September 2006, 01:40:09
Quote
korben62 a écrit:
Tu veut le code des canons du SANKUKAI ?


Ca serait cool ;)



Offline korben62

  • Hero Member
  • *****
  • Posts: 561
  • Karma: 0
Reply #10 - 10 September 2006, 10:36:45
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 DefineAnimations

void 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)));
      }


« Last Edit: 10 September 2006, 12:03:32 by korben62 »


Offline Extincteur

  • Legend
  • ******
  • Posts: 1170
  • Karma: 0
Reply #11 - 10 September 2006, 12:03:31
Quote
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 DefineAnimations

void 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 &gt= LASER_CLOSING) {
      double LF = simdt * LASER_FIRING_SPEED;
      if (lazer_status == LASER_CLOSING) {
         if (lazer_proc &gt 0.0) lazer_proc = max (0.0, lazer_proc-LF);
         else {                
            lazer_status = LASER_CLOSED;
            explode_proc = 1-lazer_proc;}
      } else {
         if (lazer_proc &lt 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 &lt= 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 &gt= 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 &lt= 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 &gt= 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)));
      }


et ben!! c'est plus compliquer que le spacecraft de faire uen dll!!!


« Last Edit: 10 September 2006, 12:03:32 by extincteur »