Jump to content

Elgiloy

Mitglieder
  • Gesamte Inhalte

    29
  • Benutzer seit

  • Letzter Besuch

    Nie
  1. Der Wert der Variable "Linie31" ist nun immer "Linie1". das heißt der Vergleich trifft immer zu. Durch das Auslesen auf dem Gleis wird sie nicht verändert. Ebenso die Variable "Linie32". Deine Weiche schaltet also jedesmal hin und her. Stattdessen solltest du $_Trigger1.Linie auslesen.
  2. Hallo Neo, Verkettete Zeiger hatte ich nicht im Sinn. ich hatte eigentlich nur daran gedacht, dass das Ereignis "Countdown läuft ab" den _Trigger1 des Ereignisses erbt, welches den Countdown startet. Dazu bräuchte der Countdown keine eigene Objektvariablen außer einem _Trigger1, wie ihn andere Ereignisse auch haben. Nur wäre dieser Trigger jeweils immer derselbe wie schon im aufrufenden Ereignis. So könnte man nach und nach z.B. eine Reihe von Variablen einer beliebigen Lok in hintereinandergeketteten Countdowns abfragen, ohne dies für jede spezifische Lok einzeln programmieren zu müssen..  
  3. Wahrscheinlich schwierig, weil ja der Zugriff auf den Namen der Lok (Lok1._Name) nicht reicht, sondern man eigentlich einen Zeiger (*Lok1) auf das Lokobjekt bräuchte, um auf die Variablen der Lok zugreifen und operieren zu können.   In dem Zusammenhang fände ich es allerdings fein, wenn Countdowns bei ihrer Auslösung den Haupttrigger des auslösenden Ereignisses "erben" könnten. Derzeit hat ja das Countdownereignis keinen sinnvollen _Trigger1. Wenn also statt des -hypothetischen, aber etwas in der Art muss es ja geben- Constructors "Countdown(String name, float delay)" einer eingeführt würde, der "Countdown(String name, float delay, *Object trigger)" hieße, dann könnte man eine Lok einen Countdown auslösen lassen und bei Ablauf desselben ohne Probleme auf die Variablen eben dieser Lok operieren. Man könnte auch Ereignisketten schreiben, wobei der ürsprüngliche Trigger immer weitergereicht würde.
  4. So, lade jetzt mal eine Demoanlage mit gradueller Beschleunigung und Abbremsen hoch in die experimentellen Anlagen. Hab doch den Mund etwas voll genommen. Ein Start vom Signal aus ist leider nicht möglich, weil man bei dem Ereignis "Signal schaltet" natürlich keinen Zugriff auf ein Zug-Objekt bekommt. Man braucht also nach dem Signal doch noch ein Beschleunigungsgleis. Was man auch beachten muss: Ein Löschen der einmal initialisierten Loks ist nicht zu empfehlen. Selbst wenn man eine Lok gleichen Namens danach wieder auf die Anlage stellt, beziehen sich die Objektvariablen in der Ereignisverwaltung offenbar immer noch auf die gelöschte Lok und die ganze Sache funktioniert nicht mehr. Beschleunigung2.zip
  5. Hallo Franz,   das mit dem rechtshändigen Koordinatensystem hatte ich auch gerade herausgefunden. Allerdings bekomme ich immer nur das Modell mit Farben exportiert, und die Texturen fehlen. Irgend eine Idee, was ich da noch falsch mache? In Blender werden mir die Texturen angezeigt.
  6. Hallo alle, derzeit kann ich nicht an meinen Computer. Das Beschleunigungssystem wird noch eine Verbesserung bekommen, um das Überschießem des Zielwerts zu beseitigen. Ich weiß schon wie es geht. Dann werde ich eine Demoanlage hochladen. Frühestens heute abend. Danke für das Bild vom langen Heinrich! Und für die Hoffnung auf eine 41er. Das waren doch dolle Kisten.   Gruß Elgiloy  
  7. Hallo EASY, Meine Idee es über Countdown zu regeln, ergibt die Ereignissteuerung im Anhang. Die drei Countdownereignisse müssen für jede Lok geschrieben werden. Dafür braucht man kein langes Beschleunigungs- und Bremsgleis und kann die Beschleunigung auch alternativ von jedem Signal aus in Gang setzen. Dass der Zielwert jedes mal etwas überschossen wird, muss man bei der Eingabe der Reisegeschwindigkeit berücksichtigen.  Falls man mit rückwärts fahrenden Loks rechnen muss, muss das Gleis es abfragen und noch entsprechend alternative Aktionen bei den Gleisen eingefügt werden, sonst kriegt man unerwrtete Ergebnisse.   Natürlich könnte man (um die Dinge auf die Spitze zu treiben) auch noch bei der Lok Beschleunigungs- und Bremskoeffizienten hinterlegen, die jeweils mit eingerechnet würden. Dann würde sich eine BR41 mit 40 Kohlenwaggons deutlich anders verhalten als eine 110 mit 3 Personenwagen.   Gruß Elgiloy   (PS. Hab ich schon gesagt, dass ich mir als Bewohner Nordwestdeutschlands ein Modell der BR41 wünsche?) Beschleunigen.zip
  8. Hallo Neo, jetzt haben wir ja erstmal so viel neues Spielzeug. Mehr brauchts vorerst auch nicht. Wir müssen zunächst mal sehen dass wir die Möglichkeiten ausreizen. Wird bestimmt spannend.   Danke!
  9. Hmm. Man müsste für jede Lok einen Countdown haben, der regelmäßig abfragt, ob sie im Status "Beschleunigung" (könnte ja auch negativ sein) ist oder nicht. Wenn ja, wird die Geschwindigkeit entsprechend manipuliert.  Im Prinzip bräuchte man nach Objektvariablen (z.B. L1.v_ist) für so etwas auch noch Objektmethoden (z.B. L1.beschleunigen() ). Das geht sicher zu weit für ein Programm wie das Modellbahnstudio. Also muss man eine Objektmethode quasi "außerhalb des Objekts" schreiben. Das dürfte am ehesten mit einem Dauercountdown pro Lok zu lösen sein.
  10. Hervorragend! Schon ausprobiert und es klappt sehr gut. Ein Ereignis steuert auf der eingleisigen Strecke Beschleunigung und Abbremsen für beliebige Loks in beide Richtungen. @ Rainer: Ein andernorts oft geäußerter Wunsch wurde erfüllt, daher die etwas flapsige Formulierung. Was es sagen will, ist, dass nun im Aktionteil der Ereignissteuerung verschiedene Aktionen für den Fall dass eine Bedingung erfüllt wurde, und für den umgekehrten Fall angegben werden können. Dafür musste man bisher 2 verrschiedene Ereignisse schreiben.
  11. Was für ein hervorragender Brückenbaukasten! Jetzt vielleicht noch 15° Versionen einzelner Bauteile?
  12. Hallo Neo, folgende Erweiterungen der Ereignissteuerung könnte ich mir als sinnvoll vorstellen: 1. Neuer Auslöser "Anlage wird gestartet" der einmalig ausgelöst wird wenn man eine Anlage neu in das Studio geladen hat. Damit könnte man beispielsweise für jemanden, der die Anlage neu heruntergeladen hat, eine "geführte Tour" über die verschiedenen Kameras auf der Anlage initialisieren. 2. Neue Aktion: "Kommentar anzeigen" die den Inhalt des jeweiligen Kommentars zu dem Ereignis in einem Textfenster einblendet. Ob sich das Textfenster nach einiger Zeit von selber schließt, oder ob der Benutzer es schließen muss, wäre zu überlegen. Könnte man vielleicht auch bei der Aktion programmieren. Sinnvoll für Debugging und Test beim Bau der Anlage, oder auch um dem Herunterlader einer komplizierten Anlage Tips zur Bedienung geben zu können. Sicherlich Wünsche mit niedriger Priorität. Nett fände ich es aber allemal.
  13. Hallo Neo, die Bedingung "Lokgeschwindigkeit ist..", die ich mir oben wünschte, ist ja durch die Einführung der _CurrentSpeed - Variablen inzwischen implementiert. Großartig, funktioniert auch wunderbar und spart einiges an Aufwand bei der Ereignissteuerung. Aber je mehr ich mit den neuen Objektvariablen experimentiert habe, desto mehr habe ich mir die IF-THEN-ELSE Funktionalität gewünscht. Dieser Wunsch ist zumindest bei mir durch die neuen Variablen eher noch stärker geworden.    
  14. Hallo Easy, Eine Methode alle neuen Loks auf der Anlage automatisch zu initialisieren, so dass keine Variablen per Hand angelegt werden müssen und keine vergessen werden können: Beim Einsetzen einer neuen Lok einmal über das Gleis fahren lassen, was mit folgendem Ereignis belegt ist: Ereignis: Zug betritt ein Gleis: - Initialisierung Bedingung: Varable hat den Wert: _Trigger1. initialisiert - Ja - negiert Aktion: Setze Variable: _Trigger1.initialisiert - Ja Aktion: Setze Variable: _Trigger1.Typ - P Aktion: Setze Variable: _Trigger1.Speed - 200 etc etc, jenachdem welche Variablen deine Loks brauchen. Bei schon initialisierten Loks passiert nichts, Loks die die Variable "initialisiert" noch nicht haben, werden mit dem ganzen Variablensatz und Defaultwerten bestückt.
  15. Hallo Neo,   Ich habe die Ursache des Phänomens herausgefunden. Es handelte sich um ein Popupfenster eines anderen Programms (wahrscheinlich Avira?) in der unteren rechten Bildschirmecke. Aus irgendeinem Grund war dieses Fenster unsichtbar, fing aber trotzdem die Mauskommandos ab. Nachdem ich durch Herumprobieren den unsichtbaren Schließbutton dieses Fensters gefunden hatte, ging alles wieder normal. Inwieweit ein Fehler im Modelleisenbahnstudio die Darstellung dieses Fensters verhindert hat, oder ob es an dem anderen Programm liegt, kann ich natürlich nicht sagen.
×
×
  • Neu erstellen...