![]() |
Knopf am Höhenmesser
Tja... ich bin jetzt dabei den Höhenmesser meiner Extra zu erstellen. Da ich alle möglichen Knöpfe und Zeiger aus Performancegründen als echte 3d Objekte baue stehe ich jetzt vor der Frage wie ich diesen besagten Knopf zum Eichen des Höhenmessers baue.
a) Als Drehknopf. Gibt's da überhaupt eine Möglichkeit sowas als "Regler" zu realisieren? Der Flusi kennt ja eigentlich nur +/- Variante, aber mittels MakeMdl.parts.xml kann man ja sehr viel machen. b) +/- mittels Mausbutton. Kann ich das auf EIN GMax Objekt legen oder muss ich dann den Knopf zweiteilen? c) wie b) nur mittels linken und rechten Mausbutton. Bring ich das in ein Objekt unter? Hmm... |
Tja, die Gemeinde hält sich mit Tipps und Tricks zur makemdl.parts.xml erstaunlicherweise sehr bedeckt. Wahrscheinlich zu simpel...;)
Ohne es jetzt probiert zu haben: "+""#" geht m.E. nicht, da man 3D-Objekte nicht wie ein normales gauges aufteilen kann (im Prinzip weist man ja beim normalen gauge der "+" und der "-" aktion getrennte Flächen auf dem gauge zu.) Ich weiß nicht, was Du mit "Regler" meinst. Aber folgende Überlegeung: 1. Du erstellst den 3D-Knopf und animierst die Drehbewegung. 2. Du erstellst in der makemdl.parts.xml einen neuen Abschnitt. 3. Die Animation hast Du ja selbst erzeugt, also müsstest Du zwischen <animation> und </animation> nur die Variable angeben (mit <parameter> und ggf. mit <code>): <animation> <parameter> <sim> <variable>KOHLSMAN SETTING MB</variable> <units>grads</units> <bias>50</bias> <scale>1</scale> </sim> </parameter> </animation> 4. Die Mausaktion steuerst Du im Teil <mouserect> über einen callback-code ähnlich wie bei "trimtab_elevator_key": <callback_jump_dragging> <ymovement> <delta>-3</delta> <event_id_inc>ELEV_TRIM_DN</event_id_inc> <event_id_dec>ELEV_TRIM_UP</event_id_dec> </ymovement> </callback_jump_dragging> nur eben dann meinetwegen mit KEY_KOHLSMAN_INC: <callback_jump_dragging> <ymovement> <delta>-3</delta> <event_id_inc>KEY_KOHLSMAN_INC</event_id_inc> <event_id_dec>KEY_KOHLSMAN_DEC</event_id_dec> </ymovement> </callback_jump_dragging> Du hast dann zwar nicht den "+-"-Cursor, sondern nur die Hand, müsstest aber mit "ziehen" den Knopf zum rotieren bringen. Linker und rechter mouse-button werden über die mouse-flags angesprochen: <mouse_flags>LeftSingle+LeftDrag+Wheel</mouse_flags> spricht wohl die linke maustatse an. Allerdings ahbe ich kein Beispiel für rightsingle gefunden, aber es wäre vielleicht einen Versuch wert, in der mouserect-Sektion zwei mouseflags-Abschnitte zu deklarieren und dann ihnen verschiedene Aktionen zuzuweisen. Gruß Ralf |
Mist, die Besipiele kommen nur verstümmelt. Deshalb der text noch einmal als Anhang.
|
Danke schön für die Tips. :-)
Was ist für den Piloten denn praktischer? Per +/- verstellen oder mittels des Schiebens? Ich würde ja fast lieber mit der Maus schieben statt klicken. Allerdings ist es gerade für diesen Knopf das Klicken sinnvoller, da genauer. +/- kann ja durchaus mittels eines zweigeteilten Knopfs erfolgen. Und drehen brauche ich den eigentlich auch nicht. Das sieht man bei diesen kleinen Knöpkes nicht. |
Tja dann,
wenn Du den Knopf sowieso nicht animieren willst: mach doch ein "fake": erstelle den Knopf als 3D, weise ein durchsichtiges gauge-bitmap zu und teile im Quellcode (des 2D-Code)den Mausbereich in "+" und "-" auf. Ich habe auch mal mit "echten" 3D-Codes experimentiert, es dann aber sein gelassen: 1. der Aufwand war mir zu groß 2. Das "Ruckeln" im 3D-Cockpit habe ich wegbekommen, indem ich ein einziges gauge-bitmap erstellt habe.(kann auch 1024*1024 groß sein) Gruß Ralf |
Ralf, genau das das will ich aber vermeiden. :)
|
Tja, stimmt. Genau das hattest Du eigentlich geschrieben...
Gruß Ralf:( |
Ich hole den Beitrag noch einmal hoch, weil ich mittlerweile auf eine Lösung gekommen bin, vielleicht interessiert es ja noch jemanden...
Das Beispiel ist eigentlich selbsterklärend: PHP-Code:
Gruß R. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag