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

Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 725 - Sprite Kitの実装にも色々な知識がいります

Sprite Kitを使ったシンプルゲームのチュートリアルを勉強してます。

SKViewの勉強をしたかったからです。SKViewに表示するコンテンツはSKSceneクラスということも分かりました。そして個々のオブジェクトはSKSpriteNodeクラス、普通は「ノード」と呼ばれ、SKActionクラスを加えることで動きが加わります。

今日は個々の「ノード」のインタラクションを実装していきます。

実はこのインタラクションには物理的ルールが存在していて、UIViewの世界ではUIDynamicAnimatorという物理世界があることを以前勉強しました。

yataiblue.hatenablog.com

SKViewでは異なる物理世界を実装していきます。UIViewとSKViewでは座標システムが異なるからです。こういう問題をProtocol-Oriented Programmingで解決することができるのかもしれません。


ではSKViewにおける物理世界の概要をみます。

  1. まずPhysics Worldを設定します。
  2. Physics Worldで物理法則を受けるために、ノードにPhysics Bodyを組み込みます。
  3. そして理解し難い言葉が出てきました。「カテゴリー」です。Physics Bodyのプロパティなのですが、これが「ビットマスク」なんだそうです。ビットマスク? また知らない単語が出てきました... 私のような素人のプログラミング勉強が捗らない理由の1つが基礎力の無いところです(^^;) ビットマスクの勉強を改めてします。
  4. ノードに物理空間を設定しても、デリゲーションメソッドを実装しないかぎり物理空間は動きません。この考え方はUIDynamicAnimatorの実装を勉強したときに理解しているので意味は分かります。

これがSprite Kitの基本空間です。

まだまだですね。今日はここまで。