ParticleAffector QML Type

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

Import Statement: import QtQuick.Particles
Inherited By:

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

Eigenschaften

Signale

Detaillierte Beschreibung

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

Wenn ein Affector eine definierte 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 Eigenschaft

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.


shape : Shape

Wenn eine Größe definiert wurde, kann die Eigenschaft shape verwendet werden, um eine nicht rechteckige Fläche zu beeinflussen.


system : ParticleSystem

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


whenCollidingWith : list<string>

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

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 von ParticleAffector befinden, modifiziert durch shape), 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

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 von ParticleAffector berücksichtigt wird, aber nicht in irgendeiner Weise verändert wird.

In dem speziellen Fall, in dem ein ParticleAffector keine mögliche Auswirkung hat (z.B. ParticleAffector {}), wird dieses Signal für alle Partikel ausgegeben, die berücksichtigt werden, wenn du dich mit ihm verbindest. Dies erlaubt es Ihnen, beliebigen Code als Reaktion auf Partikel auszuführen (verwenden Sie den ParticleAffector::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.