In diesem Software-Praktikum sollte ein Flugsimulator für das kollisionsfreie Fliegen
durch einen dreidimensionalen Menger-Schwamm programmiert werden. Der
Flieger sollte sich dazu nur auf festgelegten Bahnen bewegen dürfen, die sich aus der
Geometrie des Menger-Schwamms ergeben. Automatische Kollisionsvermeidung hat den
erheblichen Vorteil, dass beliebig hohe Geschwindigkeiten auch ihn hindernisreichen
Umgebungen möglich sind.
Dargestellt werden sollte der Flug aus Sicht des Fliegers; Programmiersprache für dieses
SoPra ist C mit OpenGL.
Zur Umsetzung des Projektes wurde ein Spiel programmiert in dem zwei Spieler durch
Tastatursteuerung sich bei möglichst hoher Geschwindigkeit jagen können.
Die Spieler übernehmen im Menger-Schwamm abwechselnd die Aufgabe eines Jägers und eines
Gejagten. Ziel ist es als Jäger den Gejagten zu fangen. Sobald der Gejagte gefangen wurde
wechseln die Rollen und eine "Schonzeit" von 5 Sekunde wird eingeleitet in der der neue
Gejagte fliehen kann. Der Jäger ist einen Tick schneller als der Gejagte, jedoch wird der
neue Jäger in der "Schonzeit" heruntergebremst um dem Gejagten die Möglichkeit zur Flucht
zu geben.
Die Position wird jeweils durch ein Raumschiff markiert und durch eine Art
"Radar" angegeben. Zwei Fenster geben die jeweilige Sicht der Spieler an (Links: Spieler 1,
Rechts: Spieler 2). Entsprechend geben zwei weitere Fenster unter den Hauptfenstern die
momentane Blickrichtung (grün), die Ausrichtung nach oben (blau) und die Position des
anderen Spielers (rot) an. Desweiteren wird die momentane Aufgabe in den unteren Fenstern,
sowie der Punktestand angegeben. Die Punkte berechnen sich nach der Anzahl der Würfel die
als Gejagter durchflogen wurden.
Benötigte Software:
Mengerschwamm benötigt ein Betriebssystem mit OpenGL-Unterstützung, GLUT-Bibliotheken sowie
einen ANSI-C-Compiler. Zum kompilieren müssen die dazugehörigen Headerdateien vorhanden sein.
Download:
Laden sie die Quellcodes mit ihrem Browser von dieser Seite herunter.
tar.gz entpacken:
Um Platz und Downloadzeit zu sparen wurde Mengerschwamm in ein sogenanntes Tar-Archiv gepackt.
Sie können das Programm mit
tar -xzf menger.tar.gz
entpacken.
kompilieren mittels make (LINUX/UNIX):
Um die Kompilation von Mengerschwamm zu starten geben sie make ein. Wenn dabei fehler auftreten
sollten man die Makefile an das jeweilige System anpassen.
kompilieren unter WINDOWS (ungetestet):
Mengerscchwamm wurde unter Linux programmiert sollte jedoch auch unter Windows kompilierbar sein.
Bitte lesen sie die entsprechenden Handbücher ihres C-Compilers.
3.2. Das Menü
Man startet im Mainmenü. Neben der Menüleiste sind die Punktestände des letzten Spieles angeben,
sofern sie nicht neu gestartet haben. Die Auswahl der Menüpunkte erfolgt durch die Mausbedienung.
SPIEL STARTEN - Das Menüfenster wird gelöscht und die Spielfenster werden aufgebaut. (Siehe unten) ITERATIONSSTUFE - Man gelangt in ein Untermenü in welcher man die Größe des Spielfeldes wählen kann.
Die Größe ist in Iterationsstufen angegeben. Die Ausmaße des Feldes sind 3 hoch Iterationsstufe in
jede Dimension. Es ist zu beachten das eine größeres Feld auf manchen Systemen nicht mehr spielbar
ist aufgrund von Verlusten der Geschwindigkeit. FLIEGEN AUSSERHALB DES WÜRFELS - Durch Wählen des Menüpunktes schalten sie die Option ein oder aus.
Die Vorabeinstellung ist aus und sollte auch beibehalten werden um sinnvolles Spielen zu ermöglichen.
Sollten sie die Funktion einschalten, können sie sich vom Würfel unbegrenzt in jede Dimension
entfernen. Das Programm ist auf diese Funktion nicht ausgelegt und kann in extremfällen zu Fehlern
führen. EXIT - Hiermit verlässt man das Spiel und reservierter Speicherplatz wird wieder freigegeben.
3.3. Spielsteuerung
Beide Spieler spielen mit derselben Tastatur.
Anpassen der Tastatur, auf z.B.: englische Tastaturen oder Invertierung, nur durch Manipulation im
Sourcecode der Datei "menger.c" möglich (nicht zu empfehlen).
F1 - Spiel wird gestartet ESC - Spiel wird beendet und man gelangt zurück in das Menu
Steuerung Spieler 1: W - nach oben X - nach unten A - nach links D - nach rechts S - letzte Eingabe löschen
Steuerung Spieler 2: Pfeil oben - nach oben Pfeil unten - nach unten Pfeil links - nach links Pfeil rechts - nach rechts Ende - letzte Eingabe löschen