Jump to content

Wiederholungen verzögern


RoniHB

Recommended Posts

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 by RoniHB
Link to comment
Share on other sites

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

  • 2 months later...

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

Screenshot.jpg

Verzögern.mbp

Edited by siggi
Ergänzung (Gruß)
Link to comment
Share on other sites

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

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 by siggi
Korrigiert! ...Neo (StartKFZ-verzögert .mbp)..
Link to comment
Share on other sites

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 by Goetz
Korrektur nach Lesen des folgenden Postings von Neo
Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...