Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ss20:neg_theorie

Dies ist eine alte Version des Dokuments!


Inhaltsverzeichnis

← Zurück zur Projektseite

Theorie

Engine

Die Engine basiert auf Python und Pygame. Pygame macht es einfach eine Steuerung per Maus oder Tastatur zu implementieren. Außerdem gibt es Funktionen zum zeichnen von Formen. Das reicht bereits für eine einfache 2D Engine.

Für die Übersichtlichkeit ist die Implementation der Engine Objektorientiert. Die Klassen sind folgendermaßen strukturiert:

Damit man einfach und übersichtlich Berechnungen durchführen kann, gibt es die Klassen Vector, Matrix und Ray mit entsprechenden methoden. Außerdem haben alle darstellbaren Objekte die Superklasse drawable. Diese ist abstrakt und dient dazu, dass verschiedenste Objekte einheitlich benutzt werden können, da zum Beispiel alle Klassen, die von drawable erben eine draw() methode haben.

Als erstes muss die Engine objekte darstellen. Der Einfachheit halber wird der Spieler immer in der Mitte des Bildes als Kreis dargestellt. So muss beim Zeichnen einfach von der Position der Objekte die Position des Spielers abgezogen werden.

Da ein nichteuklidischer Raum nicht auf die ebene Bildschirmfläche passt, müssen irgendwie die Unstimmigkeiten kaschiert werden. Die einfachste Methode ist es einfach hinter Objekten zu verstecken. Damit das in 2D funktioniert braucht es also Schatten.

Nun braucht es noch Portale, die die Engine nichteuklidisch machen (eine genaue Erläuterung findet sich weiter unten↓). Dafür sind insbesondere wieder die Schatten wichtig, denn da wo eigendlich der Schatten des Portals wäre, soll nun die Portalwelt dargestellt werden. Dazu müssen die zu malenden Objekte außerdem an linien zerschnitten werden können, um nicht über den Portalbereich hinaus gezeichnet zu werden.

(Hier ist das Portal hervorgehoben, für eine perfekte Illusion ist dies in der Engine nicht der Fall.)

Zu guter letzt sind Kollisionen mit den Objekten in der Engine essentiell (eine genaue Erläuterung findet sich weiter unten↓). Jede Illusion würde zerbrechen, wenn man einfach durch die Wand gehen kann.

Portale

Physik

ss20/neg_theorie.1599840856.txt.gz · Zuletzt geändert: 2020/09/11 18:14 von srather