Jump to content

Recommended Posts

Posted

Hallo liebe Forummitglieder,

 

danke für die schnelle Hilfe das letzte Mal.

Nun habe ich ein neues Problem. Ich möchte eine "allgemeine" Bushaltestelle erstellen. Der Bus soll nur abfahren, wenn keine Fahrzeuge auf den "Bushhaltestellen-Straßen" sind.

Ziel ist es (wie beim Beispiel "Parking Place" von Herman) die Bushaltestelle beliebig zu kopieren, ohne immer neue Ereignisse erzeugen zu müssen.

In einem Gleiskontakt zur Bushaltestelle sind die zugehörigen Straßenteile in einer Liste gespeichert. In einer Benutzerdefinierten Funktion will ich nun testen, ob auf keiner dieser Straßen ein Fahrzeug steht, dann kann der Bus abfahren. Dazu müsste ich die Liste der Straßen an das benutzerdefinierte Ereignis übergeben.

Habe mal den ersten Entwurf angehängt, falls ich mich zu verwurstelt ausgedrückt habe.

GK_BK_Haltestelle_Schlagwort --> Ereignis welches das benutzerdefinierte Ereignis mit den Parametern, "Bus" und "Liste der Strassen" aufruft

Abfahrt_Bus_Benutzer -----------> Benutzerdefiniertes Ereignis, welches den Bus wieder abfahren lassen soll.

 

Danke für die Hilfe

Bushaltestelle.mbp

Posted (edited)

Hallo heine jul,

vor 51 Minuten schrieb heine_jul:

Dazu müsste ich die Liste der Straßen an das benutzerdefinierte Ereignis übergeben.

Für die Übergabe benötigst du die erweiterte Variable.
Die erlaubt dir, als Objekt generisch den auslösenden Kontakt anzugeben und seine Liste zu übertragen:

erweiterteVariable.jpg.993e2f6ca7152592b310a9c410e06c7f.jpg

Das bedeutet auch, dass du die Liste der Straßen in dem Kontakt hinterlegen musst, der Auslöser für den Aufruf des benutzerdefinierten Ereignisses ist. Das wäre bei dir GK_BK_Haltestelle und nicht (wie aktuell in deinem Beispiel) der GK_BK_vor_Haltestelle.

Oder - falls die Liste zwingend im Kontakt vor der Haltestelle sein muss - diesen Kontakt im auslösenden Kontakt hinterlegen und anstelle des Objekts ein weiteres Mal über das Zahnrad die erweiterte Variable benutzen.

Viele Grüße
Götz

Edited by Goetz
Posted

Vorschlag:
Der Bus muß so lange abfragen, ob er starten darf, bis die Strassen frei sind.
Das würde ich mit einem Timer machen.
Anzahl Fahrzeuge brauchst Du nicht. Sobald mindestens 1 gefunden wurde einfach abbrechen.
Die Benutzerdefinierte Funktion nicht in sich selbst aufrufen.
Sonst kannst Du es so machen: Bus und Strassen übergeben, Timer starten.

 

Posted

Danke Götz, das werde ich so versuchen. 
Mit dem Timer geht so nicht, da die Bushaltestelle mehrfach benutzbar sein soll, ohne den Programmcode zu ändern. Wobei, das mit dem Abbruch nach dem ersten Fund schon logisch ist und ich das so übernehmen werde.

 

Grüße Heinrich

Posted

Ein Vorschlag:

Anstelle der einzelnen Strassen-Elementen, mach dir eine Fahrstrasse für den Bereich der frei sein muss.
Wenn der Buss abfahren soll, prüfst du, ob die Fahrstrasse aktivierbar ist. Wenn ja, ist kein Fahrzeug in dem Bereich.

Posted (edited)
On 5/10/2023 at 10:56 AM, heine_jul said:

wie beim Beispiel "Parking Place" von Herman

19 hours ago, Sintbert said:

der einzelnen Strassen-Elemente

Hello, if you have a look to "parking place" you will see I test if there is a vehicle on the single road before  the parking. ( of course disguised as a double road ).
Succes with your bus stop. 
Hallo, wenn Sie einen Blick auf „Parkplatz“ werfen, werden Sie sehen, dass ich vor dem Parkplatz teste, ob sich auf der Einzelstraße ein Fahrzeug befindet. (natürlich als Doppelstraße getarnt).
Erfolgreich mit Ihrer Bushaltestelle.

Kind regards, Herman (BE)

Edited by Herman

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...