05 Partikelsysteme

Einstieg in das Thema

Was braucht man an Vorwissen?

Das bisherige Wissen zu PyGame ist wichtig, vor allem sollten Listen verstanden worden sein.

Worum geht es?

Nun soll endlich etwas mehr gespielt werden und es geht darum, wie man Daten zu Spielobjekten zusammenfasst.

Was ist das Ziel?

Du sollst sehen, dass man auch mit vielen kleinen Objekten was erreichen kann.

Erarbeitung

Theorie

Aufgaben

Basis ist der

Quelltext

Aufgabe 1
Positioniere den Abgas-Strahl evtl. noch etwas weiter unten.
Aufgabe 2
Wie kann man ihn verlängern?
Aufgabe 3
Zusatz: Wie kann man den Abstand der Punkte vergrößern?

Nun sollen beim Treffer Trümmer umherfliegen. Im Falle eines Treffers soll also das Feindobjekt verschwinden und Trümmer sollen erscheinen. Das ist eine Menge Arbeit und wir nähern uns Schritt für Schritt.

Aufgabe 4
Gib dem Feind eine Eigenschaft "visible" oder "sichtbar".
Aufgabe 5
Setze diese am Anfang auf True und zeichne nur, wenn das Objekt sichtbar ist.
Aufgabe 6
Im Falle eines Treffers sollen Schuss und Feind unsichtbar werden.
Aufgabe 7
Baue in die Trefferabfrage auch ein, dass diese nur gemacht wird, wenn der Schuss noch sichtbar ist. Sonst erfolgen immer Kollsionstests, die nicht mehr notwendig sind und nur Probleme machen.
Aufgabe 8
Lege eine Variable truemmerFrame und eine leere Liste truemmer an.

Ein Trümmer ist eine Liste mit vier Einträgen. Die ersten beiden sind die Position, die Einträge 3 und 4 sind die Geschwindigkeit (x und y). Wir können eine Liste von Listen bauen. Und genau das machen wir.

Aufgabe 9
Im Falle eines Treffers (also genau in diesem if, wo bereits der Schuss unsichtbar geschaltet wurde, werden nun mit einer Schleife Trümmer erzeugt. Baue dort also eine Schleife ein, die ca. 10x durchlaufen wird.
Aufgabe 10
Füge für jeden Durchlauf ein Trümmerobjekt ein. Die x- und die y-Position sollen die Mitte des Feindobjektes werden (Breite und Höhe mit beachten!).
... -5 + random.random()*10, 2 - random.random() * 8]
Aufgabe 11
Die Geschwindigkeit soll zufällig sein. Oben siehst du das Ende des Listeneintrages mit dem x- und dem y-Anteil der Geschwindigkeit. Nimm dies als Start, du kannst gern weiter verändern.
Aufgabe 12
Die Trümmerobjekte sollen nun für einen Zeitraum gezeichnet werden. Wenn die Länge der Trümmer-Liste größer 0 und die Zahl der Trümmer-Frames kleiner 100 ist, soll gezeichnet werden. Erstelle die Verzeigung.
Aufgabe 13
Innerhalb dieser Verzeigung soll eine Schleife nun die Trümmer als kleine Kreise zeichnen.
Aufgabe 14
Nach dem Zeichnen müssen alls Positionen angepasst werden. Dazu wird die Geschwindigkeit auf die Position addiert.
Aufgabe 15
Ebenso muss die y-Geschwindigkeit verändert werden, denn das Fallen wird schneller. Addiere immer 0.3 auf den vierten Eintrag (also mit Offset 3).
Aufgabe 16
Beim nächsten Schuss sollen nur neue Trümmer dabei sein. Vor dem neuen Erzeugen sollen alle gelöscht (truemmer = []) werden.

Zusammenfassung

Was muss man wissen / können?

Du weißt nun, wie man mit Listen einfache Partikelsysteme berechnen und zeichnen kann.

Wie geht es weiter?

Es gibt noch viel zu tun. Es sieht nicht schön aus, ein Schuss und das Spiel ist vorbei, der Gegner bewegt sich langweilig usw.

Machen wir die Sache ewtwas bunter.

Zurück
Weiter