heine_jul Geschrieben 10. Mai 2023 Geschrieben 10. Mai 2023 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
Goetz Geschrieben 10. Mai 2023 Geschrieben 10. Mai 2023 (bearbeitet) 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: 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 Bearbeitet 10. Mai 2023 von Goetz
HaNNoveraNer Geschrieben 10. Mai 2023 Geschrieben 10. Mai 2023 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.
heine_jul Geschrieben 10. Mai 2023 Autor Geschrieben 10. Mai 2023 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
Sintbert Geschrieben 10. Mai 2023 Geschrieben 10. Mai 2023 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.
heine_jul Geschrieben 10. Mai 2023 Autor Geschrieben 10. Mai 2023 (bearbeitet) Klasse auch eine gute Idee, so wird das noch einfacher. Danke Sintbert Bearbeitet 10. Mai 2023 von heine_jul
Herman Geschrieben 11. Mai 2023 Geschrieben 11. Mai 2023 (bearbeitet) 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) Bearbeitet 11. Mai 2023 von Herman
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