Goetz Geschrieben 12. Januar Geschrieben 12. Januar (bearbeitet) Das Titelthema, welches @Phrontistes und @EASY an anderer Stelle angesprochen haben, schien mir eine Tutorial Anlage wert. Der Thread von Phrontistes hat aber grundsätzlich ein anderes Thema. Deshalb habe ich hierfür einen neuen gestartet. Unter der Content-ID F1B12254-098F-433A-9B24-BA2FB89A0E59 findet ihr jetzt eine Anlage, die zwei mögliche Wege aufzeigt: "per Wiederholung" durchläuft alle Fahrzeuge im Zug und setzt jede Kupplung auf aktiv oder inaktiv, je nachdem ob ein Fahrzeug angekuppelt ist oder nicht. local t = layout:getVehicleGroup(vehicle) for k, v in ipairs(t) do v.couplers[0].enabled = v.couplers[0].connectedCoupler ~= nil v.couplers[1].enabled = v.couplers[1].connectedCoupler ~= nil end "gezielt" spricht nur die beiden äußeren Kupplungen an. Dazu nutzt es die Ausrichtung der beiden Fahrzeuge relativ zur Fahrtrichtung um zu unterscheiden ob jeweils die vordere oder hintere Kupplung außen liegt. Die mathematische Umwandlung der Ausrichtung in den Index für die richtige Kupplung erspart die if-Unterscheidungen. local t, t2 = layout:getVehicleGroup(vehicle) local ersterWagen = t[1] local letzterWagen = t[#t] local ersteKupplung = (1 - t2[1]) // 2 local letzteKupplung = (1 + t2[#t]) // 2 ersterWagen.couplers[ersteKupplung].enabled = false letzterWagen.couplers[letzteKupplung].enabled = false "local" hält die Variablen bis zum Ende der Berarbeitung im CPU-nahen Speicher und gibt den Bereich nach Ausführung der Funktion automatisch frei. Macht für den Ablauf keinen bemerkbaren Unterschied. Hat aber bei großen Programmen den zusätzlichen Nutzen, dass es gegen ungewollte Überschneidungen bei Variablennamen absichert. Beide Konzepte gehen auf Vorschläge von Phrontistes und EASY zurück. Und beide leisten dasselbe. (Deshalb ist nur eins der beiden Ereignisse aktiv.) Außerdem hat die Anlage einen Knopf, der auf dem gelben Gleisabschnitt alle Kupplungen aktiviert. Vielleicht möchtet ihr ja gerne eigene Konzepte ausprobieren und vergleichen. Viele Grüße Götz Bearbeitet 12. Januar von Goetz Variablen "local" gesetzt
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden