SpriteKitでボタン表示3パターン(Swift)

botman_blue iOS

Xcode-13.1

はじめに

SpriteKit でのボタン表示について3パターン思いついたので紹介します。

  • UIButton を使う
  • SKNode で毎回設置する
  • SKNode のサブクラスを作る

UIButton を使う

まず1つ目が SKViewUIButton を置く方法です。

実装はこんな感じ。

見た目はこんな感じです。

button_ui

注意点としては SKView 上に置ので複数 Scene を使うときにめんどくさそうということです。あと座標系が UIKit になるので注意(原点は左上)。

SKNode で毎回設置する

2つ目は単純に Node でボタンを設置する方法です。

実装はこんな感じ。

見た目はこんな感じです。

button_node

SKShapeNodeSKLabelNode でボタンを作り、 touchesBeganSKNode.name の判定によりどのボタンが押下されたか判定しています。

デメリットとしては複数ボタンがある場合に touchesBegan の処理が複雑になることです。

SKNode のサブクラスを作る

3つ目が SKNode のサブクラスを作る方法です。

実装はこんな感じ。

見た目は2つ目の方法と同じですがクロージャを使うことで複数ボタンを置いても touchesBegan が太らないのがいいところです。

おまけ

SKNode のサブクラスを作る方法でもう少し手を加えてやるとボタン押下時にハイライトっぽいことができます。

実装はこんな感じ。

見た目はこんな感じです。

おわりに

SpriteKit でボタンを表示する方法を紹介しましたがそもそも SpriteKit でボタンをあまり使わないかもですね。
なにかアクションを実行したいときは単純に画面タップで実行することがもしかしたら多いかもしれません。

コメント

タイトルとURLをコピーしました