
geed hat geschrieben:Ich schreibe Javascript professionell im Rahmen meiner Firmentaetigkeiten, wenn's also mal was gibt, wo ihr Hilfe braucht, sagt bescheid
var killl = aircraft.door.new ("/controls/engines[0]/kill",2);
var nofuel = props.globals.getNode("engines/engine[0]/out-of-fuel",1 );
var thrust = props.globals.getNode("engines/engine[0]/thrust-lbs",1);
var kill_engineL = func {
nofuel.setValue(1);
nofuel.setAttribute("writable", 0);
thrust.setValue(0);
thrust.setAttribute("writable",0);
}
engines.engine[1].kill =
{ door :
[aircraft.door.new("/controls/engines/engine[1]/kill/position-norm", 2)
]
};
KillRpos = "/controls/engines/engine[1]/kill";
setprop(KillRpos, "postion-norm", 0);
setprop("/controls/engines/engine[1]/kill/postion-norm", 0);
var killr = aircraft.door.new ("/controls/engines/engine[1]/kill/position-norm",2);
var nofuel = props.globals.getNode("engines/engine[1]/out-of-fuel",1 );
var thrust = props.globals.getNode("engines/engine[1]/thrust-lbs",1);
var kill_engineR = func {
nofuel.setValue(1);
nofuel.setAttribute("writable", 0);
thrust.setValue(0);
thrust.setAttribute("writable",0);
}
# Anfang habe ich weggelassen da nichts zum Brandhahn
<nasal>
<load>
setprop("/controls/engines/engine[1]/kill/postion-norm", 0);
setprop("controls/engines/engine[1]/kill/postion-norm", 0);
var nofuel = props.globals.getNode("engines/engine[1]/out-of-fuel",1 );
var thrust = props.globals.getNode("engines/engine[1]/thrust-lbs",1);
var kill_engineR = func {
nofuel.setValue(1);
nofuel.setAttribute("writable", 0);
thrust.setValue(0);
thrust.setAttribute("writable",0);
}
</load>
</nasal>
<animation>
<type>pick</type>
<object-name>BrandhahnR</object-name>
<visible>true</visible>
<action>
<name>click</name>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<!-- command>property-toggle</command>
<property>controls/engines/engine[1]/kill/position-norm</property -->
<command>nasal</command>
<script>engines.killr.toggle();</script>
<script>engines.engine[1].kill.toggle();</script>
<script>kill_engineR.toggle();</script>
</binding>
</action>
</animation>
<animation>
<type>translate</type>
<object-name>BrandhahnR</object-name>
<property>controls/engines/engine[1]/kill/position-norm</property>
<interpolation>
<entry><ind> 0 </ind><dep> 0.0 </dep></entry>
<entry><ind> 0.01 </ind><dep> -0.005 </dep></entry>
<entry><ind> 0.99 </ind><dep> -0.005 </dep></entry>
<entry><ind> 1 </ind><dep> 0.0 </dep></entry>
</interpolation>
<axis>
<x> 0 </x>
<y> 1 </y>
<z> 0 </z>
</axis>
</animation>
<animation>
<type>rotate</type>
<object-name>BrandhahnR</object-name>
<property>controls/engines/engine[1]/kill/position-norm</property>
<factor>54</factor>
<center>
<x-m>0.143</x-m>
<y-m>0.007</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>0.0</x>
<y>-1.0</y>
<z>0.0</z>
</axis>
</animation>
</PropertyList>
Cpt Haddock hat geschrieben: Die gezeigten Beispiel-Codes variieren für mich in der Schreibweise ohne das ich den Grund dafür nachvollziehen kann und funktionieren, wenn ich versuche Dinge danach umzusetzen in der Regel nie.
setprop("some/property",1);
var prop = "some/property";
setprop (prop,1);
var prop = props.globals.getNode("some/property");
prop.setValue(1);
Cpt Haddock hat geschrieben:Was ich schon mitgekriegt habe ist, dass der Nasal-Code zu Beginn der Sim geladen sein muss(, oder?).
...
Eigentlich würde ich annehmen, ich muss die Triebwerksroutine in der engines.nas laden und dann durch pick im Brandhahn.xml aufrufen. Ist das richtig?
Cpt Haddock hat geschrieben: In der Datenbank schreibe ich Methoden und rufen die mit Ihrem Namen auf. Hier scheint alles über Variablen zu laufen. In der Datenbank sollte man diese zuvor typisieren und dann initialisieren.
Hier scheint Typisierung eher zweitrangig zu sein und leider gelingt mir nicht mal das Initialisieren der Property mit setprop.
...
Sind die Variablen global oder nur im entsprechenden Unter-namespace gültig?
<prop type="bool">true</prop>
Cpt Haddock hat geschrieben:Ich vermute, das func hier in etwa einer Methode in der Datenbank entspricht. Aufgerufen wird sie dann über die Variabel?
...
Muß ich Nasal Befehle auch über den Namespace aufrufen?
Cpt Haddock hat geschrieben:Zur Zeit habe ich versucht für jede Turbine eine func zu haben. Vermutlich kann man das auch global machen und mit Zeiger o. Ä. zuweisen?
Wie der globalnamespace funktioniert ist mir auch noch nicht recht klar. Ich würde vermuten, es ist ähnlich wie der property tree in FG?
Gibt es da eine Liste der verfügbaren sub-namespaces oder kann ich alles mögliche anlegen?
So wie ichs jetzt verstehe würde meine engines.nas einen subnamespace bilden. Darf ich den Namen überhaupt verwenden oder ist der ev. schon vergeben und woher weiss ich, in welchem darüberliegenden space es abgelegt ist?
Oder muss ich den Pfad dafür zuerst komplett selbst anlegen? Wenn Ja, wie?
...
Bildet mein Flugzeug einen subnamespace, so dass ich ich es im Pfad einbauen muss?
Wenn ja: welchen Namen muss ich da verwenden? Den vom Ordner, Set-File oder wie s im MP erscheint?
Brauche ich pro Triebwerk eine .nas Datei?
Cpt Haddock hat geschrieben:Ist der Property tree mit seinen Pfaden etwa auch im Nasal namespace abgelegt oder separat in FG?
<view n="1">
<config>
<y-offset-m archive="y"> 0 </y-offset-m>
<z-offset-m archive="y"> 3 </z-offset-m>
<target-y-offset-m archive="y" type="double"> 2.2 </target-y-offset-m>
<target-z-offset-m archive="y" type="double"> -2 </target-z-offset-m>
<pitch-offset-deg> -0 </pitch-offset-deg>
<default-field-of-view-deg> 44 </default-field-of-view-deg>
</config>
</view>
<view n="2">
<config>
<z-offset-m archive="y"> 10 </z-offset-m>
<y-offset-m archive="y"> 24 </y-offset-m>
<target-z-offset-m archive="y" type="double"> -15 </target-z-offset-m>
<limits>
<enabled type="bool">true</enabled>
<left>
<heading-max-deg type="double">20</heading-max-deg>
<x-offset-max-m type="double">8</x-offset-max-m>
<x-offset-threshold-deg type="double">50</x-offset-threshold-deg>
</left>
<right>
<heading-max-deg type="double">20</heading-max-deg>
<x-offset-max-m type="double">8</x-offset-max-m>
<x-offset-threshold-deg type="double">50</x-offset-threshold-deg>
</right>
</limits>
<pitch-offset-deg> -26.6 </pitch-offset-deg>
<default-field-of-view-deg> 58 </default-field-of-view-deg>
</config>
</view>
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast