Attractors
Neben Emitters kann ein Partikelsystem auch Attractors enthalten. Ein
Attractor zieht die Partikel an (oder drückt sie weg).
Ein Partikelsystem kann beliebig viele Attractors haben. Es wird
empfohlen nur wenige davon zu benutzen, weil sie den Vorgang
verlangsamen.
Ein Attractor hat folgende Eigenschaften:
- x,y Die Position des Attractor.
- force Die Anziehungskraft des Attractor. Wie die
Kraft wirkt, hängt von den folgenden Parametern ab.
- dist Die maximale Entfernung, wo der Attractor
noch einen Effekt hat. Nur Partikel, die näher als diese
Entfernung sind, werden angezogen.
- kind Die Art des Attractor. Die folgenden Werte
existieren:
- ps_force_constant Die Kraft ist konstant und
unabhängig von der Entfernung.
- ps_force_linear Die Kraft steig linear an. Bei der
maximalen Entfernung ist die Kraft 0, während auf der Position des
Attractor der gegebene Wert erreicht wird.
- ps_force_quadratic Die Kraft wächst quadratisch.
- additive Wird die Kraft zur Geschwindigkeit und
Richtung in jedem Schritt (true) addiert oder nur der Position des
Partikels (false) hinzugefügt. Wenn dieser Wert gesetzt ist,
beschleunigt das Partikel zum Attractor, während es sich sonst mit
konstanter Geschwindigkeit bewegt.
Die folgenden Funktionen existieren um Attractors zu definieren.
Bedenke, dass jede den Index des Partikelsystems bekommen
welches als erstes Argument übergeben werden muss:
part_attractor_create(ps) Erstellt einen
neuen Attractor im angegebenen Partikelsystems. Es gibt den Index des
Typs zurück. Der Index muss in allen Aufrufen zum Setzen der
Eigenschaften des Attractors angegeben werden.
part_attractor_destroy(ps,ind) Zerstört den
Attractor ind im Partikelsystem. Wenn du ihn nicht mehr brauchst, rufe
das auf um Speicher zu sparen.
part_attractor_destroy_all(ps) Zerstört alle
Attractor im Partikelsystem welche erstellt wurden.
part_attractor_exists(ps,ind) Gibt zurück, ob
der den angegebene Attractor im Partikelsystem existiert.
part_attractor_clear(ps,ind) Setzt den Attractor ind
auf seine Voreinstellung zurück.
part_attractor_position(ps,ind,x,y) Setzt die
Position des Attractor ind auf (x, y).
part_attractor_force(ps,ind,force,dist,kind,aditive)
Setzt den Force Parameter des Attractor ind.