Hauptinhalt
Programmierung
Kurs: Programmierung > Lerneinheit 5
Lektion 8: Partikelsysteme- Einführung in die Partikel-Systeme
- Ein einzelnes Partikel
- Challenge: Fallender Blätter
- Ein Partikelsystem
- Challenge: Fischbläschen
- Systeme von Partikelsystemen
- Challenge: Feuerteufel
- Partikeltypen
- Challenge: Hexenkessel
- Partikelsysteme mit Kräften
- Challenge: Felsen im Fluss
- Projekt: Kolonien von Kreaturen
© 2023 Khan AcademyNutzungsbedingungenDatenschutzerklärungCookie-Meldung
Systeme von Partikelsystemen
Überlegen wir mal einen Moment, wo wir stehen. Wir wissen, wie man mit einem einzelnen Objekt
Particle
umgeht. Wir wissen auch, wie man mit einem System von Objekten vom Typ Particle
umgeht und nennen dies ein “Partikelsystem”. Und wir haben ein Partikelsystem als Ansammlung einzelner Objekte definiert. Aber ist nicht auch ein Partikelsystem selbst wieder ein Objekt? Das ist es tatsächlich, und in diesem Fall gibt es keinen Grund, warum wir nicht auch eine Ansammlung von mehreren Partikelsystemen anlegen können, d.h. ein System von Systemen.Diesen Gedanken könnten wir auch noch weiter treiben, und am Ende wirst du dich im Keller einschließen und erstellst einen Entwurt eines Systems von Systemen von Systemen von Systemen von Systemen von Systemen von Systemen. Von Systemen. So funktioniert letztendlich auch die Welt. Ein Organ ist ein System von Zellen, ein Mensch ist ein System von Organen, ein Stadtviertel ist ein System von Menschen, eine Stadt ist ein System von Stadtvierteln, und so weiter und so weiter. Auch wenn das eine interessante Gedankenwelt ist, geht es uns für den Moment doch ein bisschen zu weit. Trotzdem ist es ganz nützlich zu wissen, wie man ein Programm schreibt, das viele Partikelsysteme verfolgt, von denen jedes wiederum viele Partikel verfolgt. Nehmen wir also das folgende Szenario:
- Du beginnst mit einem leeren Bildschirm.
- Du klickst mit der Maus und generierst dort ein Partikelsystem, wo sich die Maus gerade befindet.
- Jedes Mal wenn du mit der Maus klickst, wird ein neues Partikelsystem erstellt, wo die Maus sich gerade befindet.
Probiere es selbst aus:
Wie würdest du das als Code umsetzen? Im vorherigen Artikel haben wir eine einzelne Referenz zu einem Objekt
ParticleSystem
in der Variable ps
gespeichert.var ps = new ParticleSystem(new PVector(width/2, 50));
draw = function() {
background(50, 50, 50);
ps.addParticle();
ps.run();
};
Nun da wir viele Systeme haben (eine potentiell immer größer werdende Anzahl), wollen wir sie nicht in einzeln benannten Variablen speichern. Stattdessen werden wir mit einem Array all diese Systeme verfolgen. Wir beginnen mit einem leeren Array zu Beginn des Programms:
var systems = [];
Immer wenn mit der Maus geklickt wird, wird ein neues Objekt
ParticleSystem
erzeugt und in das Array verschoben:mousePressed = function() {
systems.push(new ParticleSystem(new PVector(mouseX, mouseY)));
};
Und in
draw()
gehen wir nun, anstatt ein einzelnes Objekt ParticleSystem
zu referenzieren, durch alle Systeme im Array und rufen für jedes einzelne run()
auf.draw = function() {
background(50, 50, 50);
for(var i = 0; i < systems.length; i++){
systems[i].addParticle();
systems[i].run();
}
};
Probier es nun selbst mit dem Code, den wir geschrieben haben, noch einmal aus:
Willst du an der Diskussion teilnehmen?
Noch keine Beiträge.