Deutsches Simutransforum

Normale Version: Zeichnungsebenen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Nix für Ungut, prissi Wink

Mal wieder etwas grundsätzliches, schwirrt mir auch schon länger durch den Kopf...

Alle im Spiel zeichenbaren Objekte erhalten eine Zeichnungsebene, also einen Variableneintrag in der dat wie design_level=1
Dann hätten (grob)
Ebene 0: Grundobjekte
Ebene 1: Bäume, Gebäude, Schienen, Strassen
Ebene 2: Tramschienen
Ebene 3: Haltestellen
Ebene 4: Fahrzeuge
Ebene 5: Fahrleitung
Ebene 6: Stromkabel

Dann wird gezeichnet:
Code:
for (x=0, x=Kartengrösse_x,x++) {
for (y=0, y=Kartengrösse_y,y++) {
  for (z=z(x,y), z=z(x,y)+1) {
   for (design_level=0, design_level=vieviel es dann gäbe, design_level++) {
    zeichne;}}}}

Nehme an, dass der Code das grosso modo schon so macht, aber wenn sich Fehler häufen, fängt man vielleicht besser nochmals von vorne an...
Itern macht das Programm fast genau das, nur etwas einfacher. Das heißt zuerst Boden und Wegen. Dann werden alle Felder in einem zweiten Durchgang mit Objecten versehen, in der Reihenfolge, wie sie in der Dingliste stehen. Dabei können Objekte auch Vordergrundobjekte haben. Dennoch scheitert es des öfteren an der Realität, wenn Leute ihre Vehikel falsch ausgerichtet haben, zu weit in die Nachbarzelle gemalt haben etc.

Außerdem hängt der Zusammenhang was vor wem auch von der Höhe und anderen Dingen ab, was neue Darstellungsfehler mit sich bringt.

Daher halte ich persönlich diese Umstellung für etwas, was nicht unbedingt weiterhilft. Die weitere Anstrengung sollte eher in eine Tiefenkoordinate gehen, oder gleich 3D. Außerdem gibt es einfach Sachen, die im jetzigen System prinzipiell nicht gehen, z.B. ein Objekt von hinten noch vorne über die ganze Länge. Das ist entweder vorne oder hinten falsch sichtbar. (Die gibt es übrigens auch bei 3D-Spielen. Nur da verbietet man einfach diese Objekte bzw. vermeidet sie bei den vorgefertigten Leveln.) Das ist halt der Preis der Freiheit. Wink
Für den Archivar...