Deutsche Homepage für den polnischen Freeware-Eisenbahnsimulator EN57

Die Positionierung der graphischen Elemente

Die graphischen Elemente werden mit Hilfe von Bitmapgraphiken im dreidimensionalen Raum von „Mechanik EN57“ positioniert. Die verwendeten Graphiken kannst Du entweder aus dem umfangreichen Bestand der bereits vorhandenen Graphiken nehmen – oder selbst erstellen.

Wichtige Hinweise: Die Länge der Außenkanten aller Bitmapgraphiken muß 8 Pixel oder ein Vielfaches davon betragen – also beispielsweise 16 mal 16, 16 mal 32, 16 mal 128, 16 mal 256, 32 mal 16, 32 mal 32, 64 mal 64, 128 mal 256 etc.

Die Farbpalette ist sehr schwierig zu bestimmen, deshalb ist es empfehlenswert, für eigene Grafiken die Farbpalette aus einer vorhandenen Grafik zu übernehmen oder die eigene Grafik in die Zwischenablage zu kopieren, eine gleich große vorhandene Grafik aufzurufen, den Inhalt zu löschen und die eigene Grafik aus der Zwischenablage in die Originalgrafik zu kopieren: abspeichern und dann klappt es mit der Farbpalette.

Die Definition des dreidimensionalen Raumes in Mechanik

Der dreidimensionale Raum wird im Programm durch die Achsen x, y und z definiert:

Die x-Achse läuft von links nach rechts; ihr Nullpunkt befindet sich in der Mitte des Triebfahrzeuges.
Die y-Achse läuft von oben nach unten; ihr Nullpunkt befindet sich in Augenhöhe des Triebfahrzeugführers.
Die z-Achse läuft in Fahrtrichtung; der Nullpunkt ist der augenblickliche Standort des Fahrzeugs.

Im Maßstab entsprechen 200 Pixel einem Meter in der Natur, d.h. 2 Pixel sind 1 Zentimeter und 100000 Pixel sind 500 Meter.

1. Voraussetzungen für die Anordnung der Graphiken

Weil die Fensteranordnung der Fahrerkabine in dieser Programmversion zur Zeit nicht verändert werden kann, gelten folgende Voraussetzungen: der Triebfahrzeugführer sitzt rechts, etwa 75 cm von der Fahrzeugmitte entfernt – der Nullpunkt der x-Achse ist also um 150 Pixel nach links verschoben.

Die Gleisgraphiken im Originalprogramm und in den zu „Mechanik de Luxe“ gehörenden Modulen sind 32 mal 32 Pixel groß. Sie müssen mit dem Faktor 25 vergrößert werden: 800 mal 800 Pixel = 4 mal 4 Meter – eine geringere Vergrößerung ist nicht möglich, beziehungsweise nicht zu empfehlen, da sonst der Lichtraumabstand zu gering ist.

Diese Gleisgraphiken weisen leider einen Fehler auf: sie haben einen Schienenabstand von 15 Pixeln; das bedeutet, daß die Spurweite bei einer Vergrößerung um den Faktor 25 genau 44 cm zu groß ist. Die in den folgenden Beispielen verwendeten Gleisgraphiken habe ich deshalb für mein Projekt „S-Bahn Berlin“ verändert: sie haben nur einen Schienenabstand von 12 Pixeln – was einer Spurweite von 1500 mm entspricht; sie ist also nur noch 6,5 cm zu breit.

Originalgraphik

angepaßte Graphik

Originalgraphik

angepaßte Graphik

2. Beispiel für die Anordnung der Graphiken

Für dieses Beispiel werden zwei Graphiken verwendet, die in der tekstury.dat folgendermaßen definiert wurden:

 1   gleis1.bmp
30   testpic.bmp

gleis1.bmp

testpic.bmp

 

Wenn die hier abgebildeten Bitmapgraphiken für eigene Experimente verwendet werden sollen, müssen sie vorher vom JPEG- in das BMP-Format umgewandelt werden.

Die Eckpunkte der Graphiken werden, beginnend mit der linken unteren Ecke, im Uhrzeigersinn gezählt:

links unten = x1, y1, z1;
links oben = x2, y2, z2;
rechts oben = x3, y3, z3;
rechts unten = x4, y4, z4.

Der Vergrößerungsfaktor (dlugosz) gibt an, wie oft die Bitmapgraphik vergrößert wird. Wenn eine Graphik von 32 mal 64 Pixel nicht vergrößert wird, nimmt sie auch die gleiche Fläche ein, bei einem Vergrößerungsfaktor von 2 müssen 64 mal 128 Pixel und bei einem Vergrößerungsfaktor von 3 müssen 96 mal 192 Pixel als benötigte Fläche vorgesehen werden.

Ist die durch die Werte von x1,y1,z1 bis x4,y4,z4 definierte Fläche kleiner oder größer als die benötigte Fläche, schneidet das Programm einen Teil der Bitmapgraphik ab oder wiederholt einen Teil der Graphik um die Fläche aufzufüllen.

Dabei besteht die für das Beispiel verwendete trasa.dat nur aus den folgenden 5 Zeilen:

 

wand links

#t km ile x1 y1 z1 x2 y2  
#t 000000 4 -550 400 3000 -550 -240  
z2 x3 y3 z3 x4 y4 z4 x5  
3000 -550 -240 4280 -550 400 4280 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u dlugosz nr_t JAKOSC nr_konca    
1 1 1 20 30 4 9    
 

querwand links

#t km ile x1 y1 z1 x2 y2  
#t 000000 4 -550 400 3000 -550 -240  
z2 x3 y3 z3 x4 y4 z4 x5  
3000 -1830 -240 3000 -1830 400 3000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u dlugosz nr_t JAKOSC nr_konca    
1 1 1 20 30 4 6    
 

gleis

#t km ile x1 y1 z1 x2 y2  
#t 000000 4 -550 400 0 -550 400  
z2 x3 y3 z3 x4 y4 z4 x5  
100000 250 400 100000 250 400 0 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u dlugosz nr_t   nr_konca    
1 1 1 25 1   6    
 

wand rechts

#t km ile x1 y1 z1 x2 y2  
#t 000000 4 250 400 4280 250 -240  
z2 x3 y3 z3 x4 y4 z4 x5  
42800 250 -240 3000 250 400 3000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u dlugosz nr_t JAKOSC nr_konca    
1 1 1 20 30 4 6    
 

querwand rechts

#t km ile x1 y1 z1 x2 y2  
#t 000000 4 250 400 3000 250 -240  
z2 x3 y3 z3 x4 y4 z4 x5  
3000 1530 -240 3000 1530 400 3000 0  
y5 z5 x6 y6 z6 x7 y7 z7  
0 0 0 0 0 0 0 0  
nr_0 m_v m_u dlugosz nr_t JAKOSC nr_konca    
1 1 1 20 30 4 6    

Die trasa.dat ist eine reine Textdatei, deren einzelne Zeilen jeweils mit 〈crlf〉 abgeschlossen werden. Zeilen, die nicht mit einer Objektidentifizierung (#t, #t_p, 'sem, 'o etc.) beginnen, werden vom Programm ignoriert – sie können zur Kommentierung verwendet werden. Die einzelnen Werte werden voneinander durch Zwischenräume getrennt – zur besseren Übersichtlichkeit dürfen auch Tabulatoren verwendet werden.

Wenn das Programm mit dieser trasa.dat gestartet wird, zeigt der Blick aus dem Führerstand des abfahrbereiten Triebwagenzuges EN57 diese Streckenansicht:

Ein paar kleine Änderungen in der Streckendatei (trasa.dat) haben bedeutende Auswirkungen. So sind im folgenden Beispiel für die linke Querwand nur die Werte von x1,y1,z1 und x4,y4,z4 sowie von x2,y2,z2 und x3,y3,z3 vertauscht worden, d.h. x1,y1,z1 steht rechts unten und die Werte werden entgegen dem Uhrzeigersinn gezählt.

Außerdem wurde bei der rechten Querwand der Vergrößerungswert von 20 auf 10 herabgesetzt: das Programm füllt deshalb die vorgesehene Fläche jeweils zweimal mit der Bitmapgraphik aus.

Mehr als ein Spielprogramm: polnischer Freeware-Eisenbahnsimulator EN57