22-03-2005, Tuesday-14:05:35
Simutrans hat eine Art kooperatives Multitasking. Jede Routine (sofern sie etwas umfangreicher ist) ruft an verschiedenen Stellen eine Routine auf, die evt. die Anzeige auffrischt, sollte inzwischen zuviel Zeit verschritten sein. Wenn nix anzuzeigen ist, dann geht es weiter. Die Hauptroutine ruft in bestimmten Zeitabständen für jede Kachel bzw. jeden Convoi usw. eine Routine auf, die Logik beinhaltet. Kommt wieder Kachel 1 dran, dann ist eben ein Simulationsdurchlauf beendet.
Das heißt gleichzeitig auch, dass die Grafik Vorrang hat. Auch wenn das Spiel intern schon auf dem letzten Loch pfeift, ist die Grafik noch relativ ruckelfrei. (Das hängt davon ab, wieviel Abstand zwischen den einzelenen Aufrufen einprogrammiert war.) Allerdings reagiert das Programm evt. schon sehr sehr langsam auf Eingaben, das diese natürlich auch in der Logik verarbeitet werden müssen.
Gleichzeitig sind z.B. Aufrufe währed des Scrollings nicht möglich. Deswegen fahren zwar die Züge bis zur nächsten Station. Aber der Aufruf zum be- und entladen findet nicht statt, da in diesem Moment die Simloops angehalten sind.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt ohne grob falsch zu werden.
Das heißt gleichzeitig auch, dass die Grafik Vorrang hat. Auch wenn das Spiel intern schon auf dem letzten Loch pfeift, ist die Grafik noch relativ ruckelfrei. (Das hängt davon ab, wieviel Abstand zwischen den einzelenen Aufrufen einprogrammiert war.) Allerdings reagiert das Programm evt. schon sehr sehr langsam auf Eingaben, das diese natürlich auch in der Logik verarbeitet werden müssen.
Gleichzeitig sind z.B. Aufrufe währed des Scrollings nicht möglich. Deswegen fahren zwar die Züge bis zur nächsten Station. Aber der Aufruf zum be- und entladen findet nicht statt, da in diesem Moment die Simloops angehalten sind.
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt ohne grob falsch zu werden.