FlightGear - Création d'avions et autres / Creation of aircraft and other

Vous désirez aider à améliorer les avions de Hangar de Helijah, c'est ici que cela se passe / You would like to help improving aircraft from Helijah's hangar, this is where it happens

Vous n'êtes pas identifié(e).

#1 2015-03-01 12:59:35

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

And if not ?

Pour les curieux, je rentre pas trop dans les détails du code, donnerais les détails de la prog Xml dans un tuto (bientôt, avant pâques).

Bon, c'est écris dans le titre du sujet,

J'aurais besoin d'éclaircissement, vu que je suis à la ramasse en maths, sur l'utilisation des fonction logique AND, IF, NOT et les petits frères.

J'essaie d'animer ça:
fuel-s10.png

ATTENTION, ce sont les textures temporaires empruntée sur le Net, les miennes sont en cours d'élaboration.

Afin d'éviter de faire deux ensembles d'objets pour l'écran d'affichage de la gestion du carburant (il peux s'afficher aussi bien en bas à gauche, qu'en bas à droite), j'appelle le même ensemble d'objet, la différence se situant dans les onglets s'affichant à côté des boutons correspondants.

Dans mon fichier principal "mfd.xml", j'ai crée une variable qui change par action sur le bouton rotatif et mis un pas de 0.1 (0.5 c'est encore trop rapide), de façon à éviter les tâtonnements en tournant et avoir le bon écran (on à donc 10 clics molette entre deux écrans).
Les valeurs "instrumentation/avio-mfd/screen-down-left" et "instrumentation/avio-mfd/screen-down-right" varient donc, comme il y a 10 écrans différents à afficher, de 0 à 9.

Puis j'appelle mon sous- ensemble "fuel.xml", en lui donnant selon le bouton droite et gauche, la position voulue.

Ca donne ça :

<?xml version="1.0" encoding="ISO-8859-1"?>

<PropertyList>

  <path>mfd.ac</path>

  <animation>
    <object-name>A1</object-name>
...............................
<!-- Variables setup -->
  <params>
...........................
    <screen-down-left>instrumentation/avio-mfd/screen-down-left</screen-down-left> <!-- pour créer une variable bouton de gauche -->
    <screen-down-right>instrumentation/avio-mfd/screen-down-right</screen-down-right> <!-- pour créer une variable bouton de droite -->
................
  </params>
...................
<!-- Screen Lower Left Selector -->

  <animation>
    <type>pick</type>
    <object-name>A6</object-name>
    <visible>true</visible>
    <action>
      <button>3</button>
      <binding>
        <command>property-adjust</command>
        <property alias="../../../../params/screen-down-left"/>
        <step>0.1</step>
        <min>0</min>
        <max>8</max>
        <wrap>0</wrap>
      </binding>
    </action>
  </animation>

  <animation>
    <type>pick</type>
    <object-name>A6</object-name>
    <visible>true</visible>
    <action>
      <button>4</button>
      <binding>
        <command>property-adjust</command>
        <property alias="../../../../params/screen-down-left"/>
        <step>-0.1</step>
        <min>0</min>
        <max>8</max>
        <wrap>0</wrap>
      </binding>
    </action>
  </animation>

  <animation>
    <type>rotate</type>
    <object-name>A6</object-name>
    <property>instrumentation/avio-mfd/screen-down-left</property>
      <interpolation>
        <entry><ind>0</ind><dep>0</dep></entry>
        <entry><ind>8</ind><dep>270</dep></entry>
      </interpolation>
    <center>
     <x-m>  0.00491 </x-m>
     <y-m> -0.14924 </y-m>
     <z-m> -0.08181 </z-m>
    </center>
    <axis>
      <x> -1 </x>
      <y>  0 </y>
      <z>  0 </z>
    </axis>
  </animation>
........................

<!-- Call Fuel Left Screen-->

  <model>
    <name>Fuel</name>
    <condition>
      <and>
        <greater-than>
        <property>instrumentation/avio-mfd/screen-down-left</property>
          <value>0.5</value>
        </greater-than>
        <less-than>
        <property>instrumentation/avio-mfd/screen-down-left</property>
          <value>1.5</value>
        </less-than>
      </and>
    </condition>
    <path>Aircraft/Eclipse-550/Models/Interior/Cockpit/AVIO-mfd/Fuel/fuel.xml</path>
    <offsets>
      <x-m>  0.002 </x-m>
      <y-m> -0.0716 </y-m> <!-- là il va le mettre à gauche -->
      <z-m> -0.0373 </z-m>
    </offsets>
  </model>

<!-- Call Fuel Right Screen-->

  <model>
    <name>Fuel</name>
    <condition>
      <and>
        <greater-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>0.5</value>
        </greater-than>
        <less-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>1.5</value>
        </less-than>
      </and>
    </condition>
    <path>Aircraft/Eclipse-550/Models/Interior/Cockpit/AVIO-mfd/Fuel/fuel.xml</path>
    <offsets>
      <x-m>  0.002 </x-m>
      <y-m>  0.040 </y-m>  <!-- là il va le mettre à droite -->
      <z-m> -0.0373 </z-m>
    </offsets>
  </model>
...................
</PropertyList> 

Seulement, justement suivant sa position droite ou gauche, les onglets des boutons seront à gauche pour l'affichage de l'écran en position droite, et vice versa.
La copie écran vous montre mon ensemble "Fuel" dans Blender, avec ses deux onblets.

Je sèche donc sur la manière de n'afficher qu'un seul des deux.
Quand les deux boutons rotatif sont à des positions différentes, pas de problème. Mais si ils sont dans la même tranche (entre 0.5 et 1.5 pour le fuel), ça pose problème puisque j'ai mes conditions valables des deux côté :

<?xml version="1.0" encoding="ISO-8859-1"?>

<PropertyList>

  <path>fuel.ac</path>

  <animation>
    <object-name>EstRemain-1</object-name>
.......................
  </animation>
......................

<!-- Fuel Left Tabs -->

  <animation>
    <type>select</type>
    <object-name>Tabs-Lh</object-name>
    <visible type="bool">true</visible>
    <condition>
      <and>
        <greater-than>
        <property>instrumentation/avio-mfd/screen-down-left</property>
          <value>0.5</value>
        </greater-than>
        <less-than>
        <property>instrumentation/avio-mfd/screen-down-left</property>
          <value>1.5</value>
        </less-than>
      </and>
      <not>
        <greater-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>0.5</value>
        </greater-than>
        <less-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>1.5</value>
        </less-than>
      </not>
    </condition>
  </animation>

<!-- Fuel right Tabs -->

  <animation>
    <type>select</type>
    <object-name>Tabs-Rh</object-name>
    <visible type="bool">true</visible>
    <condition>
      <and>
        <greater-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>0.5</value>
        </greater-than>
        <less-than>
        <property>instrumentation/avio-mfd/screen-down-right</property>
          <value>1.5</value>
        </less-than>
      </and>
    </condition>
  </animation>
....................
</PropertyList>

Comme vous le voyez, j'ai essayé avec d'utiliser la fonction NOT sur l'onglet de gauche, l'onglet de droite ayant la prog initiale.


QU'EST-CE QUE QUOI JE FAIT-JE ?????????

Merki buckets


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

#2 2015-03-02 13:37:15

Didier1963
Developpeur
Lieu : Bordeaux
Inscription : 2012-10-24
Messages : 1 238

Re : And if not ?

Une solution trouvée par .................. google2.gif........... NON NON,
par :
d3d-av10.png

QUOI ????

Elle est pas bien ma marque d'instrument virtuels 3D ?? love1.gif
Le 1er D pour ......... Didier, le IIID pour ............... 3D !!!

Hé oui, pourquoi pas ?
Si je n'obtiens pas les droits du fabricant du MFD, alors j'en fait un moi-même en y mettant ma marque.
Bon, je ne l'ai pas déposée (250€ quand même), mais ça devrais le faire.

Bon, sinon, la solution qui m'es venue juste après avoir éteins le PC (comme d'hab après pas mal de temps à essayer de trouver une solution qui ne viens pas), faire un ensemble objet (comme je l'ai fait pour chaque écran) et l'appeler au besoin en le mettant à gauche ou à droite, comme les écrans.
Là je suis en train de préparer les textures des étiquettes pour utiliser avec la fonction textranslate et les variables "instrumentation/avio-mfd/screen-down-left" et "instrumentation/avio-mfd/screen-down-right".

Le résultat ......................... dans le tuto qui sera dans la poule en chocolat. weird.gif

Mais si quelqu'un sait comment utiliser les fonctions logique (and, or, not, etc;), pour tout avoir dans le même fichier Xml, je suis toujours preneur de la solution.

PS: Ha, j'oubliait, aller jeter un coup d'oeil si vous souhaitez suivre un débat sur Xml versus Nasal versus C++ versus encorunautrelangagedeplus. Regardez aussi les liens ajouté aux textes.
Il y a des C.....ies, mais aussi de bonnes idées, faites votre tri.
Chacun aura son propre avis donc évitons de reprendre le débat ici ..............
Nooooooooooooooooooooooooon Manu, j'ai dit évitons!!!!!!
-
-
-
-
-
-
-
- mais moi c'est Xml (avec YASim bien sùr) sacrain.gif ...... histoire de mettre un peu d'huile sur le feu........


Pourquoi cet avatar : il a réussi à les arrêter LUI au moins.......
Amicalement, Didier, Poitiers 86; LFBI alt 129m, 46°35'22.9"N 0°18'32.7"E
"Ils ne savaient pas que c'était impossible, alors ils l'on fait" Marc Twain

Hors ligne

Pied de page des forums

Propulsé par FluxBB 1.4.8