箱が壊れたときにパーティクルが表示されるようにしてみました。
パーティクルを出すには、新規でSpriteKit Particle Fileを作成します。
Sparkを選択、ファイル名を決めると、sksファイルが生成されます。
Texutureを箱の画像に設定して、箱が壊れたときのパーティクルを作ります。
弾が箱に当たった瞬間に以下のコードを実行します。
if let box = two.node as? Box{ let absolutePosition = self.convert(box.position, from: box.parent!) box.explode(position: absolutePosition, scene: self) box.removeFromParent() }
箱のある座標にパーティクルを設定するのですが、箱の座標を絶対座標に変換しています。
explode処理の中身は以下の通り。
func explode(position:CGPoint,scene:SKScene){ let emitter = SKEmitterNode(fileNamed: "CrateExplosion")! emitter.position = position scene.addChild(emitter) }
ファイル名と座標を設定して完了です。