Affector QML Type

Wendet Änderungen an den Attributen logischer Partikel zu einem beliebigen Zeitpunkt ihrer Lebensdauer an. Mehr...

Import Statement: import QtQuick.Particles
Inherited By:

Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander

Eigenschaften

Signale

Detaillierte Beschreibung

Der Basis-Affektor verändert keine Attribute, kann aber verwendet werden, um ein Signal auszusenden, wenn ein Partikel bestimmte Bedingungen erfüllt.

Wenn ein Affector eine bestimmte Größe hat, dann wirkt er nur auf Partikel innerhalb seiner Größe und Position auf dem Bildschirm.

Affektoren haben andere Leistungsmerkmale als die anderen Elemente des Partikelsystems. Insbesondere haben sie einige Vereinfachungen, um zu versuchen, eine Simulation in Echtzeit oder schneller durchzuführen. Wenn ein System mit Affektoren betrieben wird, werden unregelmäßige Frame-Timings, die zu groß werden (> eine Sekunde pro Frame), dazu führen, dass die Affektoren versuchen, mit einer schnelleren, aber weniger genauen Simulation zu sparen. Wenn das System mehrere Affektoren hat, ist die Reihenfolge, in der sie angewendet werden, nicht garantiert, und bei der Simulation größerer Zeitverschiebungen simulieren sie jeweils die gesamte Verschiebung, was zu unterschiedlichen Ergebnissen im Vergleich zu kleineren Zeitverschiebungen führen kann.

Eine genaue Simulation für eine große Anzahl von Partikeln (Hunderte) mit mehreren Affektoren kann auf einiger Hardware möglich sein, aber auf weniger leistungsfähiger Hardware sollten Sie mit kleinen Unregelmäßigkeiten in der Simulation rechnen, da diese mit schlechterer Granularität simuliert.

Dokumentation der Eigenschaften

acceleration : StochasticDirection

Die Beschleunigung der betroffenen Partikel wird auf diese Richtung eingestellt.


enabled : bool

Wenn enabled auf false gesetzt ist, wird dieser Affector keine Partikel beeinflussen.

Normalerweise wird dies verwendet, um einen Affektor bedingt ein- oder auszuschalten.

Der Standardwert ist true.


groups : list<string>

Welche logischen Partikelgruppen betroffen sein werden.

Wenn leer, werden alle Partikel betroffen.


once : bool

Wenn once auf true gesetzt ist, wird dieser Affector jedes Partikel nur einmal während seiner Lebenszeit beeinflussen. Wenn der Affektor normalerweise einen kontinuierlichen Effekt über die Zeit simuliert, dann simuliert er den Effekt von einer Sekunde Zeit in dem Moment, in dem er auf das Partikel einwirkt.

Der Standardwert ist false.


position : StochasticDirection

Die Position der betroffenen Partikel wird auf diese Richtung gesetzt, relativ zu ParticleSystem. Wenn Sie Richtungen als Punkte interpretieren, stellen Sie sich diese als einen Pfeil vor, dessen Basis bei 0,0 auf ParticleSystem liegt und dessen Spitze sich an der angegebenen Position befinden wird.


relative : bool

Ob die betroffenen Partikel ihre bestehende Position/Geschwindigkeit/Beschleunigung zu der neuen addieren sollen.

Die Voreinstellung ist true.


shape : Shape

Wenn eine Größe definiert wurde, kann die Eigenschaft shape verwendet werden, um einen nicht-rechteckigen Bereich zu beeinflussen.


system : ParticleSystem

Dies ist das System, das von dem Element beeinflusst wird. Wenn der Affector ein direktes Kind eines ParticleSystem ist, wird er automatisch mit diesem verbunden.


velocity : StochasticDirection

Die Geschwindigkeit der betroffenen Partikel wird auf diese Richtung gesetzt.


whenCollidingWith : list<string>

Wenn hier logische Partikelgruppen angegeben sind, wird der Affector nur ausgelöst, wenn der untersuchte Partikel einen Partikel einer dieser Gruppen kreuzt.

Dies ist etwas anderes als die Eigenschaft groups. Die Eigenschaft groups wählt aus, welche Partikel untersucht werden können, und wenn sie andere Kriterien erfüllen (einschließlich, dass sie sich innerhalb der Grenzen des Affectors befinden, modifiziert durch die Form), dann werden sie erneut getestet, um zu sehen, ob sie sich mit einem Partikel aus einer der Partikelgruppen in whenCollidingWith überschneiden.

Standardmäßig sind keine Gruppen angegeben.


Signal Dokumentation

affectParticles(Array particles, real dt)

Dieses Signal wird ausgegeben, wenn Partikel ausgewählt werden, die beeinflusst werden sollen. particles ist ein Array von Partikelobjekten, die direkt manipuliert werden können.

dt ist die Zeit seit dem letzten Mal, als es betroffen war. Verwenden Sie dt, um Trajektorienmanipulationen auf Echtzeit zu normalisieren.

Hinweis: JavaScript ist langsamer in der Ausführung, daher ist es nicht empfehlenswert, dies in hochvolumigen Partikelsystemen zu verwenden.

Hinweis: Der entsprechende Handler ist onAffectParticles.


affected(real x, real y)

Dieses Signal wird ausgegeben, wenn ein Partikel ausgewählt wird, der beeinflusst werden soll. Es wird nicht ausgegeben, wenn ein Partikel vom Affector berücksichtigt wird, aber nicht in irgendeiner Weise verändert wird.

In dem speziellen Fall, in dem ein Affector keinen möglichen Effekt hat (z.B. Affector {}), wird dieses Signal für alle Partikel ausgegeben, die in Betracht gezogen werden, wenn Sie sich mit ihm verbinden. Dies erlaubt es Ihnen, beliebigen Code als Reaktion auf Partikel auszuführen (verwenden Sie den Affector::onAffectParticles Signalhandler, wenn Sie Code ausführen wollen, der die Partikel selbst betrifft). Da dies JavaScript-Code pro Partikel ausführt, ist es nicht empfehlenswert, dieses Signal mit einem hochvolumigen Partikelsystem zu verwenden.

(x, y) ist die aktuelle Position des Partikels.

Hinweis: Der entsprechende Handler ist onAffected.


© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.