読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 776 - 爆発はアニメーション!

爆発に物理空間を実装したので、ここから本当に衝突判定をします。

おっと、「衝突」という言葉を使うのは語弊がありました。Sprite Kitの物理空間の世界では、「collision」と「contact」を明確に区別しているからです。衝突はcollisionになります。しかし、explosionRadiusオブジェクトのphysics bodyのcollisionBitMasukを「0」にしているので、衝突は無視されます。衝突判定をするんじゃなく接触判定(contact)を実装していくんです。

今までの内容で間違った説明があるかもしれません。復習する時に気がつけば修正しますm(_ _)m

さて、接触判定ですが、tossBeaker()メソッド内のif let cloud内を次のように修正を加えます。

if let cloud = beaker.childNode(withName: "cloud"), 
  let explosionRadius = 
  beaker.childNode(withName: "explosionRadius") {

beakerにcloudノードを加えたオブジェクトとbeakerにexplosionRadiusノードを加えたオブジェクトを作ることができたらif節内を実行します。

今日はこれだけ。