Marslander
 

Bericht

Warum Marslander?

Wir sammelten einige Ideen für ein Spiel und einigten uns ziemlich früh dafür, dass wir ein Weltraumspiel machen wollten. Uns fiel das Spiel Moonlander in die Hände und wir hatten die Idee einer Adaption dieses Klassikers. Wir wählten dieses Spiel, da es einen leichten Einstieg und gleichzeitig extrem viele Ausbaumöglichkeiten bot.

Physikalische/Mathematische Aspekte

  • Die Beschleunigung der Rakete wird mit der Newtonschen Bewegungsgleichung berechnet.
  • Die Gravitationskraft der Himmelskörper auf die Rakete wird mit dem Gravitationsgesetz berechnet.
  • Die Drehung der Rakete mit den Flammen wird durch einer Koordinatentransformation ausgeführt.

Interface

Die Steuerung unseres Spiels geschieht mit der Tastatur und der Maus. Mit den Pfeiltasten kann der Spieler das Raumschiff steuern und bestimmte Tasten werden zum Aktivieren von Optionen benötigt. Dies wird alles in der Einleitung beschrieben, welche beim Spielstart erscheint. Die Maus wird ausschliesslich zum Betätigen von Schaltflächen benötigt. Wir haben darauf geachtet, dass die Levels einfach editier- und erstellbar sind. Des weiteren können ohne grössere Anpassungen beliebig viele Levels hinzugefügt werden. Während dem Spielverlauf wird eine Treibstoffanzeige eingeblendet. Falls der Treibstoff aufgebraucht wurde, ist das Raumschiff manövrierunfähig und das Spiel in den meisten Fällen verloren. Ein weiteres Ziel des Spiels ist es, auf dem Weg zum Mars möglichst wenig Treibstoff zu verbrauchen. Ein kleiner Beitrag zum Umweltschutz :-) Der Verbrauch wird durch den ganzen Spielverlauf aufsummiert.

Rakete

Die Bewegung der Rakete wird mit der Newtonschen Bewegungsgleichung berechnet. Durch Drücken der Taste für den Schub, wirkt eine Beschleunigung auf die Rakete und die Geschwindigkeit erhöht sich entsprechend. Zur Visualisierung fügten wir Flammeneffekte hinzu, welche, wie auch die Rakete, in Polygonen gezeichnet wurden. Die Drehung der Rakete und den Flammen wurde mittels Koordinatentransformation realisiert.

Planeten

Jeder Planet berechnet die Anziehungskraft auf die Rakete mittels einer Gravitationskonstante und dem Abstand zur Rakete.

Erde und Mars

Die Klassen, in welchen Erde und Mars implementiert wurden, sind aus der Planetenklasse abgeleitet (Vererbung). Zusätzlich sind darin noch die Polygone für die Basen gespeichert. Die Erde und der Mars haben auch eine Anziehung, daraus resultiert eine konstante Gravitation nach unten auf das Raumschiff. Eine Kollision mit Mars, Erde oder deren Basen und die korrekte Landung auf der Marsbasis wird detektiert.

Monde

Bei den Monden handelt es sich auch um Planeten, jedoch mit zusätzlichen Parametern. So muss angegeben werden, um welchen Planeten sie kreisen und in welchem Abstand sie dies tun. Die Geschwindigkeit der Kreisbewegung wird automatisch berechnet.

Sputnik

Als kleinen Gag und weitere Erschwerung des Spiels haben wir den Sputnik implementiert. Der erste russische Satellit erscheint zufällig in einem Zeitabstand zwischen 0 und 120 Sekunden und schwebt entlang einem zufällig generierten Weg von oben nach unten. Dabei wird er auch mittels Koordinatentransformation in Flugrichtung gedreht. Der Spieler muss aufpassen, dass er bei der Reise durch den Weltraum nicht mit Sputnik kollidiert, da auch bei ihm eine Kollisionsdetektion implementiert wurde.

Physik

In der Physikklasse werden alles Anziehungskräfte gesammelt. Die Superposition davon wird auf die Rakete angewandt. Auch die Kollisionsdetektion mit allen Komponenten des Spiel wurde implementiert und die Überprüfung, ob sich das Raumschiff noch im Spielfeld befindet.
 

Startseite

Prinzip

Bericht

Code

Spiel

 
   
copyright © 2007 - Michael Dietrich & Michael Janser - best viewed with firefox 2