Swiftで遊ぼう! - 782 - SKPhysicsContactDelegate
PhysicsBodyはノードが身にまとう重力センサーの着いたボディースーツのようなもので、個々のノードがふれ合うと、論理オペレーションが生じて、SKPhysicsContactオブジェクトが生成されます。このPhysicsContactオブジェクトは、そのまま接触情報としてPhysicsWorldの持っているデリゲーションメソッド(PhysicsContactDelegate)に渡されます。
GameSceneはプロパティとして「physicsWorld」を持っているし、physicsWorldは「contactDelegate」をプロパティとして持っています。
GameSceneの初期化ステップとして働く「didMove(to view: SKView) 」で以下のように指定するのは基本です。
override func didMove(to view: SKView) { physicsWorld.contactDelegate = self newProjectile() for i in 0...8 { explosionTextures. append(SKTexture( imageNamed: "regularExplosion0\(i)")) } }
これでphysicsWorldのcontactDelegateメソッドが動くようになります。ビーカーを投げてビーカーが猫に近づいて接触が生じるととデリゲーションメソッドの「didBegin(_ contact:SKPhysicsContact) 」が起動されるからです。
でもまだ不十分です...
今日もこれだけ。