SKPhysicsBodyを可視化する方法

SpriteKitでゲーム開発をするのに大事な要素になるSKPhysicsBody。

可視化するにはGameViewControllerで以下のように設定する。

view.showsPhysics = true

PhysicsBodyはテキスチャに沿ったもの、四角形、円が設定できる。

左のテキスチャに沿った方法が望ましい。

しかし、テキスチャに基づいて作成する方法は実機だとうまく機能しなかった。

(シュミレータなら機能した)

調べてみるとiOS13のバグでPhysicsBodyがテキスチャに基づいて作成できないという情報が出てきた。

そうなると、四角形か円で作るしか無いわけだが、円の方が良いと思う。

私のゲームでは四角いブロックを並べて地面にしているのだが、プレイヤーが四角形のPhysicsBodyだと、地面に引っかかって前に進めないバグが発生した。

円はブロックとの干渉がないため、途中でプレイヤーが止まることはなかった。

PhyscisBodyを作成する上で注意すべきなのがアンカーポイントだ。

図のように、キャラクターの位置が画像よりも左によっているケースがある。

この画像をテキスチャとしてゲームに取り込む場合は、アンカーポイントを左にズラさないと図のように当たり判定がおかしなことになる。

アンカーポイントはデフォルトで(0.5,0.5)=画像の中央になる。(図のケース)

左寄りにするにはx軸を0.4、0.3と調整して、キャラの当たり判定が適切になっているか試してみよう。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog