Swiftで遊ぼう! - 727 - 物理世界をスプライトに
ゲームでノード間の衝突を実装するために、SKPhysicsContractDelegateプロトコールに準拠しなければなりません。
ノードにphysics bodyというボディースーツをまとわせます。しかし、このボディスーツ、形は単純で「四角」か「丸」しかないようですが、問題にはならないそうです。
そしてボディースーツにはカテゴリーがあり、どういう状態なのかビットを使って設定します。このビットをグローバル定数として最初に宣言するんです。
チュートリアルは下記のようなstruct型を使って設定しています。
struct PhysicsCategory { static let None: UInt32 = 0 static let All: UInt32 = UInt32.max static let Monster: UInt32 = 0b1 // 1 static let Projectile: UInt32 = 0b10 // 2 }
しかし、よく考えて見ると、こういうカテゴリーを扱う場合、struct型よりもenum型を使った方がいいような気がします。
enum PhysicsCategory { static let None: UInt32 = 0 static let All: UInt32 = UInt32.max static let Monster: UInt32 = 0b1 // 1 static let Projectile: UInt32 = 0b10 // 2 }
これでも問題無いですよね。ベテランプログラマーの皆さん。
今日はこれだけ。