Auf dieser Seite

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 Eigenschaften

enabled : bool

Wenn "enabled" auf "false" gesetzt ist, wird dieser Affektor 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, sind alle Partikel betroffen.

once : bool

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

Der Standardwert ist false.

shape : Shape

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

system : ParticleSystem

Dies ist das System, das von dem Element betroffen ist. Wenn 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 dann ausgelöst, wenn sich das untersuchte Partikel mit einem Partikel aus einer dieser Gruppen überschneidet.

Dies ist ein Unterschied zur 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, um beeinflusst zu werden. Es wird nicht ausgegeben, wenn ein Partikel von ParticleAffector berücksichtigt wird, aber in keiner 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.

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