ParticleAffector QML Type
論理パーティクルの属性に、そのライフタイムの任意の時点で変更を適用する。詳細...
Import Statement: | import QtQuick.Particles |
Inherited By: | Affector, Age, Attractor, Friction, Gravity, GroupGoal, SpriteGoal, Turbulence, and Wander |
プロパティ
- enabled : bool
- groups : list<string>
- once : bool
- shape : Shape
- system : ParticleSystem
- whenCollidingWith : list<string>
信号
- affected(real x, real y)
詳細説明
ベースとなるParticleAffectorはアトリビュートを変更しませんが、パーティクルが特定の条件を満たしたときにシグナルを発するために使用できます。
アフェクタに定義されたサイズがある場合、そのサイズと画面上の位置内のパーティクルにのみ影響します。
アフェクタは、他のパーティクルシステム要素とは異なるパフォーマンス特性を持ちます。特に、シミュレーションをリアルタイムまたはより高速に維持するために、いくつかの簡略化があります。アフェクターでシステムを実行する場合、不規則なフレームタイミングが大きくなりすぎると(1フレームあたり1秒以上)、アフェクターはより速く、しかし精度の低いシミュレーションで手を抜こうとします。システムに複数のアフェクタがある場合、アフェクタを適用する順番は保証されません。また、大きなタイムシフトをシミュレーションする場合、シフト全体をそれぞれシミュレーションすることになり、小さなタイムシフトと比較して異なる結果になることがあります。
複数の影響因子を持つ多数の粒子(数百個)の正確なシミュレーションは、ハードウェアによっては可能かもしれませんが、性能の低いハードウェアでは、粒度が悪くなるにつれて、シミュレーションに小さな不規則性が生じることが予想されます。
プロパティの説明
enabled : bool |
enabledをfalseに設定すると、このエフェクタはパーティクルに影響を与えません。
通常、これは条件付きでアフェクタをオンまたはオフにするために使用されます。
デフォルト値はtrueです。
once : bool |
once を true に設定すると、このアフェクタは各パーティクルのライフタイムに一度だけ影響します。通常、このエフェクタが時間をかけて連続的な効果をシミュレートする場合、パーティクルに影響を与える瞬間に1秒間の効果をシミュレートします。
デフォルト値はfalseです。
shape : Shape |
サイズが定義されている場合、shape プロパティを使用して長方形以外の領域に影響を与えることができます。
system : ParticleSystem |
これは、要素の影響を受けるシステムです。ParticleAffector がParticleSystem の直接の子であれば、自動的に関連付けられます。
ここに論理的なパーティクル グループを指定すると、検査されるパーティクルがこれらのグループのパーティクルと交 差する場合にのみ、パーティクルアフェクタがトリガされます。
これは groups プロパティとは異なります。groups プロパティは、どのパーティクルが検査されるかを選択し、他の基準(ParticleAffector の境界内であること、Shape によって変更されるなど)を満たすと、whenCollidingWith のパーティクル グループの 1 つのパーティクルと交差するかどうかが再度テストされます。
デフォルトでは、グループは指定されていません。
シグナルの説明
このシグナルは、影響を受けるパーティクルが選択された時に発せられます。パーティクルがParticleAffector によって考慮されているが、実際には何も変更されていない場合は発せられません。
ParticleAffector が影響を与える可能性がない特殊な場合(例:ParticleAffector {})、このシグナルは接続すると、考慮されているすべてのパーティクルに対して発せられます。これにより、パーティクルに反応して任意のコードを実行することができます(パーティクル自体に影響を与えるコードを実行したい場合は、ParticleAffector::onAffectParticlesシグナルハンドラを使用してください)。これはパーティクルごとにJavaScriptのコードを実行するため、このシグナルを大容量のパーティクルシステムで使用することはお勧めしません。
(x,y) はパーティクルの現在位置です。
注意: 対応するハンドラは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.