Auf dieser Seite

ParticleAffector QML Type

Nimmt zu jedem Zeitpunkt im Lebenszyklus Änderungen an den Attributen logischer Partikel vor. Mehr...

Import Statement: import QtQuick.Particles
Inherited By:

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

Eigenschaften

Signale

Ausführliche Beschreibung

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

Verfügt ein Affektor über eine definierte Größe, wirkt er sich nur auf Partikel aus, die sich innerhalb seiner Größe und Position auf dem Bildschirm befinden.

Affektoren weisen andere Leistungsmerkmale auf als die anderen Elemente des Partikelsystems. Insbesondere enthalten sie einige Vereinfachungen, um eine Simulation in Echtzeit oder schneller aufrechtzuerhalten. Beim Ausführen eines Systems mit Affektoren führen unregelmäßige Frame-Intervalle, die zu groß werden ( > eine Sekunde pro Frame), dazu, dass die Affektoren versuchen, durch eine schnellere, aber weniger genaue Simulation Abstriche zu machen. Verfügt das System über mehrere Affektoren, ist die Reihenfolge ihrer Anwendung nicht garantiert; bei der Simulation größerer Zeitverschiebungen simuliert jeder Affektor die gesamte Verschiebung, was im Vergleich zu kleineren Zeitverschiebungen zu unterschiedlichen Ergebnissen führen kann.

Eine genaue Simulation für große Partikelanzahlen (Hunderte) mit mehreren Affektoren ist auf manchen Hardwarekonfigurationen zwar möglich, auf weniger leistungsfähiger Hardware sollten Sie jedoch mit kleinen Unregelmäßigkeiten in der Simulation rechnen, da diese mit geringerer Granularität durchgeführt wird.

Dokumentation der Eigenschaften

enabled : bool

Wenn „Enabled“ auf „false“ gesetzt ist, hat dieser Affektor keinen Einfluss auf Partikel.

In der Regel wird dies verwendet, um einen Affektor bedingt ein- oder auszuschalten.

Der Standardwert ist „true“.

groups : list<string>

Welche logischen Partikelgruppen sind davon betroffen?

Ist das Feld leer, sind alle Partikel betroffen.

once : bool

Wenn „once“ auf „true“ gesetzt ist, wirkt sich dieser Affektor auf jedes Partikel nur einmal während dessen Lebensdauer aus. Simuliert der Affektor normalerweise einen kontinuierlichen Effekt über die Zeit, so simuliert er in dem einen Moment, in dem er auf das Partikel einwirkt, den Effekt einer Sekunde.

Der Standardwert ist „false“.

shape : Shape

Wenn eine Größe festgelegt wurde, kann die Eigenschaft „Shape“ verwendet werden, um einen nicht rechteckigen Bereich zu definieren.

system : ParticleSystem

Dies ist das System, auf das sich das Element auswirkt. Wenn das „ ParticleAffector “ ein direktes untergeordnetes Element eines „ ParticleSystem “ ist, wird es automatisch diesem zugeordnet.

whenCollidingWith : list<string>

Wenn hier logische Partikelgruppen angegeben werden, wird der Partikeleffektor nur ausgelöst, wenn sich das untersuchte Partikel mit einem Partikel einer dieser Gruppen überschneidet.

Dies unterscheidet sich von der Eigenschaft „groups“. Die Eigenschaft „groups“ wählt aus, welche Partikel untersucht werden können, und wenn sie weitere Kriterien erfüllen (einschließlich der Bedingung, dass sie sich innerhalb der Grenzen des „ ParticleAffector “ befinden, modifiziert durch „shape“), werden sie erneut geprüft, um festzustellen, 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, auf das eine Wirkung angewendet werden soll. Es wird nicht ausgegeben, wenn ein Partikel zwar von der „ ParticleAffector “ berücksichtigt, aber tatsächlich in keiner Weise verändert wird.

In dem Sonderfall, in dem ein „ ParticleAffector “ keine mögliche Wirkung hat (z. B. ParticleAffector {}), wird dieses Signal für alle berücksichtigten Partikel ausgesendet, wenn Sie eine Verbindung dazu herstellen. Dies ermöglicht es Ihnen, als Reaktion auf Partikel beliebigen Code auszuführen (verwenden Sie den Signal-Handler `ParticleAffector::onAffectParticles`, wenn Sie Code ausführen möchten, der die Partikel selbst beeinflusst). Da hierbei JavaScript-Code pro Partikel ausgeführt wird, wird die Verwendung dieses Signals bei Partikelsystemen mit hohem Partikelaufkommen nicht empfohlen.

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

Hinweis: Der entsprechende Handler lautet „ onAffected “.

© 2026 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.