RoniHB Geschrieben 13. Oktober 2020 Geschrieben 13. Oktober 2020 (bearbeitet) 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 Bearbeitet 13. Oktober 2020 von RoniHB
Neo Geschrieben 13. Oktober 2020 Geschrieben 13. Oktober 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.
RoniHB Geschrieben 15. Oktober 2020 Autor Geschrieben 15. Oktober 2020 Hallo Neo, vielen dank für den Hinweis. Ich werde das mit einer Liste lösen. LG Ronald
siggi Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 2020 (bearbeitet) 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 Bearbeitet 30. Dezember 2020 von siggi Ergänzung (Gruß)
Goetz Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 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.
siggi Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 2020 (bearbeitet) 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 Bearbeitet 30. Dezember 2020 von siggi Korrigiert! ...Neo (StartKFZ-verzögert .mbp)..
Goetz Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 2020 (bearbeitet) 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. Bearbeitet 30. Dezember 2020 von Goetz Korrektur nach Lesen des folgenden Postings von Neo
Neo Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 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
HaNNoveraNer Geschrieben 30. Dezember 2020 Geschrieben 30. Dezember 2020 Die Ereignisse bekommen sozusagen einen Zeitzünder mit auf den Weg
siggi Geschrieben 31. Dezember 2020 Geschrieben 31. Dezember 2020 Vielen Dank für eure Antworten, schon wieder neues gelernt zu Lua. Ich wünsche euch einen guten Rutsch ins neue Jahr! Siggi
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