Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Fahrzeuge fahren zu weit vor ! ?
#21
Zitat:Original von Silverfuxx
...
An einer Ampel fahren die Fahrzeuge fast bis zur Mitte der Kreuzung, ehe sie dann doch auf Rot reagieren und stehenbleiben.

...

Das gilt auch für Züge, obwohl die am Bahnsteigende richtig anhalten.
Die Züge fahren bei geschlossenen Signal (das Signal steht am Ende der Kachel) in die erste Hälfte der nächsten Kachel ein (falls ich das richtig beobachtet habe).

Mich stört es schon, wenn die Lok nebem dem Signal anhält (statt davor). X(
Zitieren
#22
Die von prissi angegebene Funktion in simvehikel.cc wird bei einem Halt vor Signalen nicht aufgerufen; wo im Code sich die Programmierung für einen Halt vor einem Signal befindet, weiss ich (bis anhin) nicht. Werden Züge aber während eines Halts vor einem Signal (oder sogar generell) gewendet, wird die Funktion vorfahren aber aufgerufen.
Mittlerweile frage ich mich, ob es für "anhalten" und/oder "wenden" im Code sogar zwei Programmierungen gibt, eine allgemein gültige und eine speziell für Halte im Bahnhof; auch warum die beiden Funktionen auf den ersten Blick so seltsam auf zwei Dateien verteilt sind, wäre noch eine Überlegung wert. (Ich bin kein Programmierer und bräuchte sehr lange, um das selber herauszufinden.)

Bei meinem Fehler ist übrigens kein Springen feststellbar; man erkennt es beim ursprünglichen Code eigentlich nur gut, wenn der Zug bei der Ausfahrt aus dem Bahnhof seine Fahrtrichtung ändert (Lok steht schräg) und gleichzeitig nicht abfahren kann, weil die Strecke belegt ist. Bei geradeausfahrenden Zügen oder sofort weiterfahrenden Zügen ist der Fehler von Auge nicht erkennbar.
Zitieren
#23
Der Check ob weiterfahren oder nicht wird immer dann gemacht, wenn eine neue Kachel betreten werden soll. FOlglich stopp ein Fahrzeug dann auch erst am Ende der Kachel.
Zitieren
#24
Zitat:Original von prissi
Der Check ob weiterfahren oder nicht wird immer dann gemacht, wenn eine neue Kachel betreten werden soll.

Woher wissen denn die Züge schon mitten in der Kachel, dass sie vor dem geschlossenen Signal sanft abbremsen müssen? Wenns wie oben beschrieben wäre, müssten sie ja am Ende der Kachel einen Vollstop reissen, oder?
Zitieren
#25
Noch einige meiner Forschungsergebnisse:

Wenn in simvehikel.cc in Zeile 1044 folgender Code eingesetzt wird:
Code:
    uint32 tiles_left = cnv->get_next_stop_index()+1-route_index;
    if((tiles_left==1) && ist_erstes) {
halten die Züge zwar optisch korrekt vor Rotlichtern, bei der Abfahrt wird die Lok jedoch die 7 Schritte nach vorne gesetzt, der Rest des Zugs aber nicht -> Zug fährt mit Lücke weiter.
Die erste Zeile habe ich einfach von weiter unten abgeschrieben (=Zeile 1087), wo die Geschwindigkeitsbegrenzungen vor dem Halt hinterlegt sind. Übrigens fahren Züge auf der gesamten letzten Bahnhofkachel mit 25 km/h; check_for_finish wird bereits aktiviert, wenn der Zug die letzte Bahnhofkachel betritt, nicht erst in der Mitte; ich konnte im Spiel keinen Zug sehen, der im Bahnhof teilweise 50 km/h fährt, egal in welche Richtung.

Interessieren würde mich aber schon, wie prissi die Lage einschätzt, ob und was er in dieser Richtung allenfalls zu tun gedenkt. Vor allem, ob er mir rät, besser die Finger vom Programmieren zu lassen.
Zitieren
#26
Zitat:Original von Gotthardlok
.... Vor allem, ob er mir rät, besser die Finger vom Programmieren zu lassen.

Das wird er wohl kaum tun.

Jeder hat mal klein angefangen. Und durch probieren lernt man.

Sichtweisen aus anderen Richtungen können so manches Problem, was Jahrelang bestand, plötzlich lösen helfen.

Ausserdem wurde Simutrans ja Opensource, damit die Leute reinsehen und probieren können.
Zitieren
#27
Die Züge wissen schon vier Kacheln vorher, dass ein Signal kommt (es sei denn, diese stehen dichter). Dann kann der Zug natürlich auch vorher abbremsen, wenn die Strecke nicht frei ist.

Ansosnten wünsche ich dir viel Erfolg, denn du hast dich da mit einem sehr unübersichtlichem Topic zugewandt. Allerdings ist es besser geworden, weil die Schritte jetzt nicht mehr direkt mit der Position verbunden sind.
Zitieren
#28
Zurück zum Thema.

Es geht darum, dass die Züge an geschlossenen Signalen bei Richtung nach Norden und Westen eine halbe Kachel zu weit fahren, während sie nach Süden und Osten korrekt vor dem Signal (d.h. in der Kachel, in der sich das Signal befindet) anhalten.

Hierzu ein Screenshot. Die beiden Loks die E80 im Süden und die V188 im Norden sind gleich aligned.


Angehängte Dateien Thumbnail(s)
   
Zitieren
#29
Wie gesagt, ist nicht ganz trivial zu lösen. Denn um Rechnzeit zu sparen, wird nur bei Übergang auf eine neue Kachel nachgesehen, ob der Weg blockiert ist. (Die Alternative wäre, die Züge eine Kachel vorher zu stoppen. Das würde aber Probleme beim Rotieren verursachen.)

Mit ein bisschen Aufwand ließe sich das aber sicher REchnezeitneutral hinkriegen. Mir fehlt leider die Zeit, aber Dwachs programmiert gerade an dieversen Garfikfehlern herum.
Zitieren
#30
Ich weiß nicht was das mit der "Vorausschau" zu tun haben soll. Wie ist sonst das zu erklären, dass die Richtungen Süd und Ost vollkommen in Ordnung sind.

Hier liegt doch ein Problem in der Assymetrie, nämlich dass die Fahrzeuge Richtung Süden/Osten doch auf der hinteren Kachelhälfte gesetzt sind, wärend die bei Richtung Nord/West die Fahrzeuge auf der vorderen Kachelhälfte sitzen (immer Aus Sicht der Lokspritze gesehen). Das ist doch eine Assymetrie die von ST nicht richtig behandelt wird.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste