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: Créer un vaisseau sur Orbiter  (Read 14127 times)

0 Members and 1 Guest are viewing this topic.

Offline X-20_Dyna-Soar

  • Newbie
  • *
  • Posts: 3
  • Country: France fr
  • Karma: 0
20 August 2016, 12:24:30
Bonjour,

Passionné par Orbiter depuis plusieurs années déjà, j'aimerai savoir comment créer son propre vaisseau spatiale le mieux possible ? J'ai lu le topic créer des addons en C++ mais certains logiciels qui était proposés ne sont plus disponible ? Si vous pouviez m'aider en me dirigeant vers un post plus récent ou alors avec votre expérience je vous en serai reconnaissant...

D-S


Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7463
  • Country: France fr
  • Karma: 614
  • Plus on rate, plus on a de chances de réussir !..
Reply #1 - 20 August 2016, 13:22:38
Pour le C++ je ne peux pas t'aider (je suis moi aussi intéressé pour... plus tard) mais pour le reste, je pourrai t'aider (fichiers cfg, msh, spacecraft...)

Bienvenue chez les fous qui passent leurs nuits à faire des petites fusées...

Mes add-ons sont là !

Offline Papyref

  • Legend
  • ******
  • Posts: 5367
  • Country: France fr
  • Karma: 356
  • Je suis dans la Lune ne pas me déranger
Reply #2 - 20 August 2016, 13:56:50
Il faut être gentil, c'est une dame  ;)


Offline X-20_Dyna-Soar

  • Newbie
  • *
  • Posts: 3
  • Country: France fr
  • Karma: 0
Reply #3 - 20 August 2016, 14:06:32
non, un homme (pardon j'ai fait une fausse manip'). J'accepte volontiers votre aide mais pouvez vous m'expliquer l'utilité de ces fichiers :wonder: car je débute dans la programmation à la rentrée donc je ne suis pas encore au top.

Merci.

D-S


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #4 - 20 August 2016, 22:02:15
Bonsoir,

Je profite de ce topique pour dire que je suis aussi intéressé...
Cela fait longtemps que je ne me suis pas connecté ici. Mais je fais souvent un tour ici.
si tu veux nous pouvons travailler ensemble... es tu d'accord?
nous allons installé le logiciel gratuit de Microsoft dernière version ensemble...

belka


Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #5 - 21 August 2016, 01:13:47
Le logiciel le plus important concernant le développement d'addons est Visual Studio: https://www.visualstudio.com/fr-fr

La version que tu veux utiliser, en assumant que tu veuilles la dernière version, est Visual Studio 2015 Community car elle est gratuite, et destinée aux développeurs indépendants et petites entreprises. Puisque tu tombes justement dans la première catégorie, tu peux donc légalement utiliser VS Community gratuitement. Il est bien plus puissant que ce que tu va utiliser si tu te contentes à la création d'add-ons pour Orbiter.

Maintenant, l'API Orbiter est en C++, ce qui veut dire qu'il faut connaître le langage, et pour connaître C++ il faut avoir des bases en C.

Je te conseille de regarder des tutoriels sur le langage C puis C++ afin d'assimiler les bases. La théorie derrière la POO est la plus importante pour la création d'un add-on selon ma propre expérience.

En suite, il faut préparer Visual Studio pour qu'il sache que tu veuilles créer un addon pour Orbiter et non pas un "simple" programme. Une bonne manière de découvrir les choses est de regarder sous le capot alors allons-y et ouvrons un projet existant - heureusement Orbiter en a quelque-uns: La navette Atlantis, le DeltaGlider, le ShuttlePB, etc.
Le plus simple d'entre eux est bien sur le ShuttlePB, et c'est donc pour de bonnes raisons que c'est le projet que l'on va choisir.


Le projet se trouve dans /Orbitersdk/samples/ShuttlePB. (J'utilise la notation Unix ici parce que c'est plus facile de taper un slash qu'un backslash, mais aussi parce qu'on sait que "/" fait référence au dossier racine du dossier d'Orbiter) Il n'y a pas beaucoup de fichiers à l'intérieur, et c'est tant mieux pour nous.
Ouvres ShuttlePB.sln, ce qui va ouvrir Visual Studio Community (que tu as évidemment installé!). Le logiciel va te demander de confirmer la mise à niveau des projets parce que la solution (=ensemble de projets qui ont un lien direct dans un produit, mot qui ici définit ton add-on au complet, même s'il est gratuit) a été enregistrée avec une vieille version de Visual Studio. Confirme la mise à niveau.


Une page web s'ouvre indicant le résultat de la conversion. Ne t'inquiètes pas s'il y a des avertissements, c'est du à des changements dans la structure interne des solutions.

"Mais où est le code?" - la fenêtre la plus importante dans tout projet dans Visual Studio est l'explorateur de solutions:


Développe le projet ShuttlePB, et tu trouves "ShuttlePB.cpp". Un double click ouvre le fichier et tadaa! du code! (quoi, vous êtes pas excités?)
Notez que le fichier code peut-être aussi développé, révélant la structure des classes - simple mais puissant. Pratique pour naviguer de méthode en méthode dans un long fichier. - Bref je m'égare.


Des fautes d'orthographe dans du code!?

Oui! Et non. Le surlignage dans les commentaires est du à une extension qui permet de vérifier l'orthographe, mais le surlignage rouge sous le code est dû au fait que Visual Studio montre des erreurs. La première est celle-ci: "#include "orbitersdk.h" "

Elle montre que le fichier n'est pas accessible - parce que nous n'avons pas donné à Visual Studio les moyens de le trouver.
Un clic droit sur le projet "ShuttlePB" (et pas la solution), et sélectionnez "Propriétés" vous apporte la boîte de dialogue suivante:


Première chose avant tout, veuillez à ce que la configuration sélectionnée soit "Toutes les configurations". La plateforme n'est à ne pas changer, puisque Orbiter est une application 32-bit seulement.

En suite, allez dans "Répertoires VC++". La deuxième option devrait être "Répertoires Include" et vous permet d'éditer les chemins où trouver les fichiers qu'on spécifie avec #include. Cliquez pour éditer, et en suite cliquez sur la flèche, et enfin "<Modifier>" - elle permet une meilleure modification des paramètres.


La fenêtre qui s'ouvre vous permet de renseigner plusieurs dossiers dans lesquels chercher les fichiers: Entrez "/Orbitersdk/include", et confirmez.

Comme par magie, plus aucune erreur! Mais il reste une dernière chose à spécifier: les fichiers de librairie statique. Si vous tentez de générer le projet, Visual Studio vous retournera une erreur disant qu'il lui est impossible d'ouvrir le fichier "orbiter.lib". Il faut donc lui dire aussi où ce trouve ce fichier.

Ceci est la liste exhaustive de tous vos problèmes. "Affichage -> Liste d'erreurs" si vous ne l'avez pas.

Ces librairies se trouvent dans "/Orbitersdk/lib". Ouvrez à nouveau la fenêtre des propriétés et ajoutez ce dossier, mais cette fois-ci, à la propriété "Répertoires de bibliothèques".

Vous êtes enfin prêt. Appuyez sur F6, où sélectionnez "Générer -> Générer la solution" pour faire apparaître la magie lancer la build. Si rien ne se passe, c'est que vous n'avez pas la fenêtre de sortie ouverte. C'est là où les messages de progression de génération sont montrés. La fenêtre est à activer si ce ne l'est pas déjà dans "Affichage -> Sortie".


Vous devriez avoir à peu près le même résultat, à quelque couleurs prêt (ici encore, c'est une extension qui ajoute les couleurs).



Et bam! Un DLL générée.

Tout ça pour une DLL? ... ouais. Mais une fois mise en place, la configuration reste et on peut en suite s'amuser avec le code!


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #6 - 21 August 2016, 07:23:38
merci SolarLiner d'avoir pris le temps de rediger tout ca.


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #7 - 21 August 2016, 18:58:25
ca y est je viens d'installer le logiciel j'ai suivi à la lettre mais rencontre deux erreurs.

comment inserer une image sur le forum? cela remplacera 1000 mots...


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #8 - 21 August 2016, 19:25:02
j'espere que ca marche!


Offline X-20_Dyna-Soar

  • Newbie
  • *
  • Posts: 3
  • Country: France fr
  • Karma: 0
Reply #9 - 21 August 2016, 23:48:22
Merci beaucoup pour ta réponse détaillée et d'avoir pris du temps pour répondre. Je vais appliquer tes conseils et je te dirais si j'arrive à les suivie. Encore merci



D-S


Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7463
  • Country: France fr
  • Karma: 614
  • Plus on rate, plus on a de chances de réussir !..
Reply #10 - 22 August 2016, 00:43:52
comment inserer une image sur le forum? cela remplacera 1000 mots...
Le plus simple (permet d'avoir l'image "en grand" et non pas une vignette) :
1) uploade ton image sur un site comme hostingPics.net (gratuit, il suffit de s'inscrire)
2) copie le lien de cette image uploadée
3) colle le lien sur ton msg dans le forum ici
4) sélectionne cette ligne en entier (donc l'adresse)
5) clique sur le bouton que tu vois en haut (2ème ligne, 3ème icone en partant de la gauche : Mona Lisa)
ça va te rajouter les balises idoines.

:prof: Voilà.

@SolarLiner : merci pour tes explications... (peut-être' à "scotcher" avec le tuto de Dan ?)

Mes add-ons sont là !

Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #11 - 22 August 2016, 02:08:48
@SolarLiner : merci pour tes explications... (peut-être' à "scotcher" avec le tuto de Dan ?)

Merci! ;) Je pense que je vais plutôt rédiger ça en PDF et le mettre dans les tutos...

@belka, tu utilises "Blend", pas "Visual Studio". C'est un peu bizzare au début, mais Blend ne te sera d'aucune utilité (c'est un logiciel pour la création d'interfaces WPF). Ré-essaye avec Visual Studio et normalement ça marche.

Cela dit, je note qu'au dessus de l'erreur au niveau du C, il y a un point virgule en fin de ligne après le for() qui ne devrait pas être là...


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #12 - 22 August 2016, 07:34:58
j'ai utilisé "Visual Studio 2015 Community" comme expliqué sur ton topic. Je n'ai rien fait de plus.


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #13 - 22 August 2016, 10:08:48
Visiblement je n'ai pas pris le bon. Là je viens de generer et tout fonctionne parfaitement bien.
merci solarliner


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #14 - 22 August 2016, 20:38:22
je n'arrive pas a trouver shuttlpb.dll dans debug.
il me demande e revoir le chemin de sortie. Ou puis je voir ca?


Offline SolarLiner

  • Global Moderator
  • Legend
  • *****
  • Posts: 2769
  • Country: France fr
  • Karma: 55
  • a été remercié par Le Créateur
Reply #15 - 22 August 2016, 21:10:23
Que te dis la fenêtre "Sortie" après avoir généré le projet?


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #16 - 23 August 2016, 06:22:57
voila ce qu'elle me dit MSB8012

Gravité   Code   Description   Projet   Fichier   Ligne   État de la suppression
Avertissement   MSB8012   TargetPath(C:\Orbitersdk\samples\ShuttlePB\Debug\ShuttlePB.dll) does not match the Linker's OutputFile property value (c:\source\orbiter\Modules\ShuttlePB.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).   ShuttlePB   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets   1189   


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #17 - 23 August 2016, 07:51:46
je viens de le trouver dans ce repertoire c:\source\orbiter\modules
comment modifier le chemin de sortie?


Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #18 - 23 August 2016, 08:29:59
Pfiouuu! c’était une galère! En effet comme c'est un ancien projet, le logiciel a du mal à le mettre à jour donc à le compiler "vraiment sans erreur"... donc j'ai refait le projet et celui m'a causé aucun problème lors de la compilation "génération". Par contre il y a un réglage à faire qu'il ne faut surtout pas négliger ce paramètre aussi voir image sinon ça plante tout le temps.
Maintenant que j'ai réglé l’histoire de la compilation, je vais voir le fond du programme le modifier le tester lol


Offline jeanus

  • re-moi !
  • Sr. Member
  • ****
  • Posts: 330
  • Country: France fr
  • Karma: 35
  • Il parait que je suis pénible ... mais heu !
Reply #19 - 26 August 2016, 15:50:08
Si non pour se faire la main, y'a Spacecraft 4 de Vinka, demande à Jacquesmomo, il m'a bien aidé ... et c'est pas fini !
Un vaisseau-station en cour de finitions avec Exo-squelette pour manipulations de charges lourdes ... c'est la fin des bras robotisés !

D'énormes possibilités avec SPACECRAFT 4, MERCI VINKA et un très grand merci à JacquesMomo, pardon, " Monsieur" JacquesMomo  :wor:

Tout dépend du point de vue ou l'on se place, par rapport à l'idée qu'on se fait de la chose ...

Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7463
  • Country: France fr
  • Karma: 614
  • Plus on rate, plus on a de chances de réussir !..
Reply #20 - 26 August 2016, 18:00:28
Voui, pour Spacecraft, pas d'problème... :why:
(en ce moment je suis un peu moins actif et présent because ma femme est en vacance ( :sage: Papyref comprendra ;)  ) mais si tu as besoin d'aide... n'hésite pas)...

Pour les dll, par contre, ça je n'y connais rien hélas.... :(

Quand je pense que mon fils n'arrête pas de programmer (c'est son métier) mais il a jamais le temps de m'apprendre...    :rant:

Mes add-ons sont là !

Offline belka

  • Full Member
  • ***
  • Posts: 202
  • Karma: 0
Reply #21 - 27 August 2016, 05:15:27
je ne sais pas comment ca marche spacecraft de vinka... quelqu'un peut me router?


Offline jeanus

  • re-moi !
  • Sr. Member
  • ****
  • Posts: 330
  • Country: France fr
  • Karma: 35
  • Il parait que je suis pénible ... mais heu !
Reply #22 - 27 August 2016, 09:31:33
je ne sais pas comment ca marche spacecraft de vinka... quelqu'un peut me router?
Ca marche Super bien ! c'est en gros un "interpréteur" de C++, y'a qu'a télécharger, lire le PDF tout est dedans y compris les exemples, ensuite tu charge les addons de Jacquesmomo (pour ne pas le citer comme référence !)  et tu analyse en profondeur ... c'est géant !
Mais je suppose que notre AMI Jacques va te faire un "topo" plus complet !!!  :beer: :wor:

Tout dépend du point de vue ou l'on se place, par rapport à l'idée qu'on se fait de la chose ...

Offline jacquesmomo

  • Le budget !!!
  • Legend
  • ******
  • Posts: 7463
  • Country: France fr
  • Karma: 614
  • Plus on rate, plus on a de chances de réussir !..
Reply #23 - 27 August 2016, 19:09:38
:prof:

comme dit Jeanus, le plus simple c'est de charger un vaisseau déjà fait et regarder...

Dans l'archive Spacecraft4 de Vinka il y a des exemples.
Il suffit de les disséquer et de comprendre.

En résumé :

Dans le scénario il y a au début de la définition du vaisseau un ligne comme cela :
BEGIN_SHIPS
MONVAISSEAU:Spacecraft/Spacecraft4
  STATUS Landed Earth
(etc...)

cette ligne va aller chercher dans le dossier "spacecraft" un fichier se nommant "MONVAISSEAU.ini"

et c'est dans ce fichier que seront déclarés les caractéristiques du vaisseau (masse, poussées, exhaust etc...) ainsi que les animations.

bien sûr il faut bien lire (et étudier) la doc de Vinka, qui semble simpliste... mais il y a tout !!!

Donc il faut un peu bosser avant, mais tout est écris en "texte" dans le fichier ini, ce qui simplifie les choses.

Alors voilà, à toi de jouer !!!

ensuite, si tu sais "coder" rien ne t'empêche de faire des dll, mais avec spacecraft4 de Vinka (et aussi "multistage2015 ne l'oublions pas) c'est assez intuitif.
Donc étudies bien les exemples de Vinka, et tu as aussi un bon exemple avec le DC6 de Tintin.

On peut également compliquer les chose et ajouter un fichier.cfg (en plus du fichier.ini) mais c'est une autre histoire...  :badsmile:

bon courage !!!  ;)

Mes add-ons sont là !

Offline jeanus

  • re-moi !
  • Sr. Member
  • ****
  • Posts: 330
  • Country: France fr
  • Karma: 35
  • Il parait que je suis pénible ... mais heu !
Reply #24 - 29 August 2016, 08:31:39
On peut également compliquer les chose et ajouter un fichier.cfg (en plus du fichier.ini) mais c'est une autre histoire...
AH BON ? MAIS CA JE VEUX !  :applause:
 VITE, une explication Maître !!!!  :wor:

Tout dépend du point de vue ou l'on se place, par rapport à l'idée qu'on se fait de la chose ...