Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 759 - Sprite Kit addChild()で混乱...

少し複雑なSKSpriteKitのチュートリアルに取り組んでいます。

www.raywenderlich.com

誰も私の疑問点に応えてくれません(T_T) 私のブログ見てくれる人は初心者さんが多いからでしょう。

まあいいです。所詮1日200前後のアクセス数しかゲットできていない万年初心者ブロガーですから... 済みません、これは愚痴です(^_^;)

他人を頼りにしないで勉強する!これが独学の基本ですね。 なんとか自分で解決していきます。

前提として言っておかなければならないことが1つあります。お金を払ってSKSpriteKitに関する入門書は購入はしていません。もしかしたら入門書に説明されている基本的な内容かもしれません。しかし、系統だって知識を習得できないネットの情報だけでSKSpriteKitの勉強をしているのでなかなか理解できないんです。

それでも少しずつ整理しながら系統だった知識構築を目指します。

今日の問題にしている「addChild()」メソッドはどこから発動しているのでしょう?

まず「newProjectile()」メソッド内に書いてある「addChild()」から確認していきます。このメソッドを「Opt + クリック」すると、リファレンス情報がポップアップして出てきます。ここの説明で「SKNode」のインスタンス・メソッドという説明があったから不思議に思ったのです。

じゃあどのSKNodeインスタンスから発動したのだろう?

これを考える前に、ちょっとコードを変えてみました。addChild()メソッドの前に「self」を入れてみました。

self.addChild(beaker)

当然、この状態でシュミレーターをランしてもエラーは出ません。

ここで「self」を「Opt + クリック」すると、なんと、「GameScene」になっています!←当然と言えば当然です。

しかし、ますます混乱してしまいます。やっぱりaddChile()メソッドはSceneから発動すると考えたらいいんですよね。