2016-09-14 18 views
2

Xcode 8の "snow"パーティクルテンプレートから作成された基本パーティクルエミッタのパーティクルにアクションを適用しようとしているiOS 10 SpriteKitプロジェクトがあります:SpriteKit SKEmitterNode particleActionがXcode 8/iOS 10で動作しない

let snowPath = Bundle.main.path(forResource: "Snow", ofType: "sks")! 
snowEmitter = NSKeyedUnarchiver.unarchiveObject(withFile: snowPath) as! SKEmitterNode 
snowEmitter.position = CGPoint(x: 0, y: size.height/2) 
snowEmitter.particlePositionRange = CGVector(dx: size.width, dy: 0) 
snowEmitter.particleAction = SKAction.scale(to: 3, duration: 3) 
effectLayer.addChild(snowEmitter) // effectLayer is a SKNode on the scene 

エミッタは正常に動作しますが、の設定に関係なく、無視されます。particleAction他の誰かがこれを経験しましたか?

アップデート:Xcode 7とiOS 9のどちらでも動作しません。

+1

snowEmitter.runaction works? –

+0

1粒子はこの効果を目撃するために3秒間生き続けるのですか? – Knight0fDragon

+0

この投稿はhttp://stackoverflow.com/questions/39298383/background-animation-with-depth-in-spritekit/39317134#39317134パーティクルアクションがios 9で動作しているので、エラーが終了している必要があります – Knight0fDragon

答えて

0

これはまだ残っているiOS 9のバグかもしれないと思いますが、100%確実ではありません。私は自分自身を試しただけで、うまく動かすことはできません。

SKEmitterNode particleAction not working iOS9 Beta

あなたは右側のインスペクタでsnow.sksに直接粒子の設定を使用して同じ効果を得ることができませんか?

おそらく、†ホースの2つの設定とそのサブセットが表示されています。

1)粒子のライフサイクル(開始、範囲)

2)粒子スケール(開始、範囲、速度)

この記事では、各設定の素敵な説明を持っています。一般的なヒントとして

http://www.techotopia.com/index.php/An_iOS_8_Sprite_Kit_Particle_Emitter_Tutorial#Particle_Birthrate

あなたの力が雪の粒子をアンラップので

あなたのコードは、最初の2行には非常に安全ではありません。 名前を変更して忘れた場合、ファイルが壊れてしまいます。あなたは、単にこのコードの単純なことで、多くはこれがちょうど同じように、同様のオプションを返します。この、あなたのsnowEmitterプロパティを定義

let snowEmitter = SKEmitterNode(fileNamed: "Snow") 

を言ってすることができ、この

guard let snowPath = Bundle.main.path(forResource: "Snow", ofType: "sks") else { return } // or if let snowPath = ... 
snowEmitter = NSKeyedUnarchiver.unarchiveObject(withFile: snowPath) as? SKEmitterNode 
... 

のようなものに変更する必要があります古いコードあなたはエミッタを設定し、あなたの方法に比べて、このような何かを言う(使用いけない!)

if let snowEmitter = snowEmitter { 
    snowEmitter.position = 
    ... 
} 

・ホープ、この目標を達成するための別の方法は

+0

アクションは動作します。http://stackoverflow.com/questions/39298383/background-animation-with-depth-in-spritekit/39317134#39317134 – Knight0fDragon

+0

@ crashoverride777パーティクルの設定では不十分です。私は粒子がスクリーンの底に向かって移動するときに粒子を左右に振りたいので、速度、加速度、角度では不十分です。私はコードが安全でないことを認識しています。 –

+1

@ Knight0fDragonこの例では、particleAction _not_ workingを示しています。それらは回転している必要がありますが、回転しないでください。 Xcode 8とiOS 10でそのコードを試したところ、particleActionは効果がありません。 –

0

ありますができます。

2つ以上のパーティクルシステムを作成します。

ノイズフィールドを2つ以上作成します。

パーティクルシステムのそれぞれをノイズフィールドの1つに一致させるビットマスク。

あなたはウィグルの味にノイズフィールドを調整し

が起こるしたい下、下のノイズフィールドを入れてください。

関連する問題