最終目標: 領域内 (そのビットを取得) 内に粒子を生成し、すべてが特定のポイントまで加速するようにします。
粒子の位置がわかっている場合はすべて問題ありませんが、粒子を生成するときは、particleRange を使用します。つまり、各粒子の正確な位置がわからないということです。
生成された各パーティクルの位置を取得する方法はありますか?
私の現在の計画は、最終的にレンダリングされた位置を読み取ることができるブロックを使用して、particleAction をアタッチすることです。
最終目標: 領域内 (そのビットを取得) 内に粒子を生成し、すべてが特定のポイントまで加速するようにします。
粒子の位置がわかっている場合はすべて問題ありませんが、粒子を生成するときは、particleRange を使用します。つまり、各粒子の正確な位置がわからないということです。
生成された各パーティクルの位置を取得する方法はありますか?
私の現在の計画は、最終的にレンダリングされた位置を読み取ることができるブロックを使用して、particleAction をアタッチすることです。
いいえ、SKEmitterNode
ドキュメントに記載されているように、パーティクルは Sprite Kit が個人的に所有するオブジェクトであり、生成後にアクセスすることはできないため、個々のパーティクルの現在の位置を取得することはできません。したがって、アクションは別のノードとして操作/アクセスの対象とならない新しいパーティクルによってのみ実行されるため、パーティクル アクション ブロック内の位置を読み取る計画は機能しません。
またはを使用して、事前に動作を設定する必要があります。ただし、クラスは回避策になる可能性があります。パーティクル エミッタをマスキングして、目的の領域外のパーティクルがレンダリングされないようにすることができます。particleRange
particleAction
SKCropNode
粒子は加速しませんが (それがなくても生きていける)、以下を使用してそれらをすべて目的の場所に移動させることができました。
emitterNode.particleAction = [SKAction moveTo:location duration:1];
これは、到達するのと同じくらい近いです。