Dan's Orbiter page

Orbiter Francophone => Création Orbiter Francophone => Topic started by: laserpithium on 13 November 2006, 17:27:03

Title: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 17:27:03
J'en ai marre, mais alors j'en ai marre !

J'ai commencé à faire les animations, c'est pas ce qu'il y a de plus simple, mais ça marche nickel !
Par contre, IMPOSSIBLE de faire fonctionner ces p..t... de thrusters !

Le code fait pourtant 2 pauvres lignes :

void Exploreur::clbkSetClassCaps (FILEHANDLE cfg)
{
hmain=CreatePropellantResource(FUEL_DENSITY*(TANK1_CAPACITY+TANK2_CAPACITY+TANK3_CAPACITY+TANK4_CAPACITY));
th_main[0] = CreateThruster(_V(-1.4,0,-22.3),_V(0,0,1),MAX_MAIN_THRUST,hmain,MAIN_ISP);
th_main[1] = CreateThruster(_V(+1.4,0,-22.3),_V(0,0,1),MAX_MAIN_THRUST,hmain,MAIN_ISP);
thg_main = CreateThrusterGroup (th_main, 2, THGROUP_MAIN);
AddExhaust (th_main[0], 20, 2.6);
AddExhaust (th_main[1], 20, 2.6);
}

Et rien ne marche ! Quand je bouge le joystick rien, et la quantité de carburant affichée dans le glass-cockpit reste à 0,
alors que quand je fais du GetPropellantMass(hmain) j'obtiens bien quelque chose... C'est pourtant du copié-collé de ce qu'il
y a dans les exemples de la SDK !!!

Brèf, je craque, aidez moi !



Message modifié ( 13-11-2006 19:43 )
Title: Re: [Je vais balancer le PC par la fenêtre] Aide sur définition thruster
Post by: DanSteph on 13 November 2006, 17:28:45
hmain est bien une variable de ta classe ou une static ?

si c'est une locale ou une globale  ca peut faire ce probleme...

Dan



Message modifié ( 13-11-2006 17:29 )
Title: Re: [Je vais balancer le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 17:34:31
Quote
DanSteph a écrit:
hmain est bien une variable de ta classe ou une static ?
si c'est une locale ou une globale  ca peut faire ce probleme...
Dan
Non, c'est une variable de ma classe, publique (définition dans le .h).

Title: Re: [Je vais balancer le PC par la fenêtre] Aide sur définition thruster
Post by: DanSteph on 13 November 2006, 17:44:23
t'a essayé un hmain=CreatePropellantResource(10000); pour etre sure ?
Passe dessus en debug pas a pas pour voir que le handles sont valides sinon...

Dan



Message modifié ( 13-11-2006 17:45 )
Title: Re: [Je vais balancer le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 18:16:08
Quote
DanSteph a écrit:
t'a essayé un hmain=CreatePropellantResource(10000); pour etre sure ?
Passe dessus en debug pas a pas pour voir que le handles sont valides sinon...
Dan
Oui, j'ai vérifié, c'est valide.
Si je fais un SetPropellantMass(hmain, 1000) et après un GetPropellantMass(hmain), j'obtiens bien 1000.
En remplaçant les #define par les valeurs numériques directement, ça ne donne rien de plus.
Et dans opcPostStep, si je vais un SetThrusterGroupLevel sur thg_main, il ne se passe rien (même pas de CTD, rien du tout).

Je retélécharge la SDK, ou cas où...

Title: Re: [Je vais balancer le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 19:43:05
J'AI TROUVE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

C'est vicieux, mais alors vicieux !!!!!

Alors solution si un jour quelqu'un se retrouve dans la même situation que moi:
Tout vient d'une erreur (oui M. Martin, une erreur !!!) dans la doc de la sdk.
En effet, la doc précise pour la fonction CreatePropellantResource() que le 1° paramètre est la masse max de fuel, et que le
2°, optionnel, est la quantité présente réellement. Et la sdk de préciser que si ce 2° paramètre est absent ou est négatif,
alors le réservoir est considéré comme plein. En pratique, il est vide !
Et même en donnant une valeur à ce 2° paramètre, on obtient toujours des réservoirs vides en chargeant le scénario.

Solution: il faut ajouter dans le scénario que l'on charge le niveau des réservoirs (commande PRPLEVEL, par exemple
PRPLEVEL 0:1 1:1) pour avoir les 2 premiers réservoirs pleins.
Et là ça marche, on a bien du carbu, et tout fonctionne.

Remarque : il n'y a pas besoin d'overloader la fonction clbkLoadStateEx() pour que Orbiter lise ce mot clé en parsant le
scénario, il le fait tout seul.

Voilà, je vais pouvoir dormir cette nuit !

++ les amis,
Laserpithium

Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: Schimz on 13 November 2006, 19:55:51
mouahaha le pilote d'essai qui oublie de faire le plein :ptdr:

pas mal :D

edit : rah, steuplé Dan

: ) ---> (http://forum-images.hardware.fr/icones/smile.gif)
: D ---> :)



Message modifié ( 13-11-2006 19:57 )
Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 20:09:30
Quote
Schimz a écrit:
mouahaha le pilote d'essai qui oublie de faire le plein :ptdr:
pas mal :D

Ah ben c'est malin ! :)

Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: DanSteph on 13 November 2006, 20:20:29
maintenant que ta fait le plein oublie pas les vitres :)

Dan
Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 13 November 2006, 20:22:47
Bon, je viens de faire remonter le problème à Martin, il verra ce qu'il en fait !

Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: Momo on 13 November 2006, 22:48:01
Quote
laserpithium a écrit:
Bon, je viens de faire remonter le problème à Martin,...

Heum... ta le bras long!
sinon ta 1-2 photos pour nous... ou faut etre Dr...?
Title: Re: [Je ne balance plus le PC par la fenêtre] Aide sur définition thruster
Post by: laserpithium on 14 November 2006, 10:38:14
Quote
Momo a écrit:
Quote
laserpithium a écrit:
Bon, je viens de faire remonter le problème à Martin,...
sinon ta 1-2 photos pour nous... ou faut etre Dr...?
Ce soir !
Mais c'est encore très moche, il n'y a pas de texture, rien !