RoniHB Posted October 13, 2020 Share Posted October 13, 2020 (edited) Hallo liebe Leute, wie baue ich eine Verzögerung in eine Wiederholungsschleife ein? Die Idee ist, Fahrzeuge mit einem Schlagwort nacheinander mit einer Verzögerung von xx Sek. zu starten, damit sie nicht alle gleichzeitig losfahren. Im Anhang die Testanlage V5 LG Ronald StartKFZ.mbp Edited October 13, 2020 by RoniHB Link to comment Share on other sites More sharing options...
Neo Posted October 13, 2020 Share Posted October 13, 2020 Hallo Ronald, der Trick ist, bei verzögerten Wiederholungen mit benutzerdefinierten Ereignissen zu arbeiten, da Wiederholungen selbst nicht verzögert werden können, benutzerdefinierte Ereignisse aber schon. Viele Grüße, Neo StartKFZ-verzögert.mbp Edit: Sehe gerade, dass das Beispiel nur prototypisch funktioniert, da die Reihenfolge der Autos nicht sichergestellt ist. Hier müsstest du daher mit expliziten Listen oder Verkettungen von Vorgänger/Nachfolger arbeiten. Link to comment Share on other sites More sharing options...
RoniHB Posted October 15, 2020 Author Share Posted October 15, 2020 Hallo Neo, vielen dank für den Hinweis. Ich werde das mit einer Liste lösen. LG Ronald Link to comment Share on other sites More sharing options...
siggi Posted December 30, 2020 Share Posted December 30, 2020 (edited) Hallo zusammen, ich hänge mich mal an. Ich versuche gerade eine Gruppe von Feuerwehrleuten (5) nacheinander sichtbar zu machen (die Reihenfolge ist unwichtig). Nach einigen Versuchen bin ich auf diesen Foreneintrag gestoßen, bekomme es aber nicht gelöst. Ich habe je Feuerwehrmann 3 Sek. Verzögerung eingestellt. Aber sie werden immer alle gleichzeitig sichtbar (nach Ablauf der 5x3 Sekunden). Abschnitt 1 im Dialogprotokoll erscheint sofort nach Betätigen der Taste, Abschnitt 2 nach den Besagten 5x3 Sekunden. Ich habe den Versuch mal angehängt. Gruß Siggi Verzögern.mbp Edited December 30, 2020 by siggi Ergänzung (Gruß) Link to comment Share on other sites More sharing options...
Goetz Posted December 30, 2020 Share Posted December 30, 2020 diese Funktion wird sofort bei Betätigung des grünen Tasters ausgeführt: local t = layout:getEntitiesByKeyword("FW-Mann") for i, Wdh in ipairs(t) do $("BD Objekt Sichtbar"):invoke(Wdh, 3) end Du sagst also in blitzschneller Folge für jeden Feuerwehrmann: "Warte 3 Sekunden, und dann zeige ihn" Anders gesagt: Du startest für alle Feuerwehrmänner zugleich eine verzögerte Aktion. Deshalb tut es nicht, was es tun soll. Die Wiederholung ist hier das falsche Mittel. Du willst nach und nach eine Liste abarbeiten. Das ist etwas anderes. Link to comment Share on other sites More sharing options...
siggi Posted December 30, 2020 Share Posted December 30, 2020 (edited) Hallo Götz, danke für deine Antwort! In der Anlage von Neo (StartKFZ-verzögert .mbp) funktioniert der Ablauf, ist dort irgend etwas anders? local t = layout:getEntitiesByKeyword("AutoStart") for i, Wdh in ipairs(t) do $("Fahrzeug starten"):invoke(Wdh, i) end Zum Verständnis für mich: <for i> nimmt den ersten Eintrag in der Tabelle <t>, führt das Benutzer definierte Ereignis <Fahrzeuge starten> aus und nimmt dann den nächsten Eintrag aus <t>. Gruß Siggi Edited December 30, 2020 by siggi Korrigiert! ...Neo (StartKFZ-verzögert .mbp).. Link to comment Share on other sites More sharing options...
Goetz Posted December 30, 2020 Share Posted December 30, 2020 (edited) vor 1 Stunde schrieb siggi: Zum Verständnis für mich: <for i> nimmt den ersten Eintrag in der Tabelle <t>, führt das Benutzer definierte Ereignis <Fahrzeuge starten> aus und nimmt dann den nächsten Eintrag aus <t>. genau. Aber es wartet nicht auf Rückmeldung. Es schickt einfach nacheinander die Befehle an alle Objekte aus der Liste. vor 1 Stunde schrieb siggi: In der Anlage von Neo ... ist dort irgend etwas anders? Ja - Die Fahrzeuge starten alle zugleich. Bzw. nein, es ist nichts anders - Die Fahrzeuge starten (genau wie bei dir die Feuerwehrmänner) alle zugleich. Da hatte ich etwas wichtiges Übersehen. Pardon. Edited December 30, 2020 by Goetz Korrektur nach Lesen des folgenden Postings von Neo Link to comment Share on other sites More sharing options...
Neo Posted December 30, 2020 Share Posted December 30, 2020 Hallo Siggi, der wichtige Unterschied ist dieser hier: $("BD Objekt Sichtbar"):invoke(Wdh, 3) vs $("Fahrzeug starten"):invoke(Wdh, i) Während du für jedes Ereignis eine konstante Pause von 3 Sekunden verwendest, übergebe ich für jedes Ereignis eine andere Dauer, und zwar "i", also 1, 2, 3 usw. Dadurch starten die Autos zu unterschiedlichen Zeitpunkten. Viele Grüße, Neo Link to comment Share on other sites More sharing options...
HaNNoveraNer Posted December 30, 2020 Share Posted December 30, 2020 Die Ereignisse bekommen sozusagen einen Zeitzünder mit auf den Weg Link to comment Share on other sites More sharing options...
siggi Posted December 31, 2020 Share Posted December 31, 2020 Vielen Dank für eure Antworten, schon wieder neues gelernt zu Lua. Ich wünsche euch einen guten Rutsch ins neue Jahr! Siggi Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now