SpriteKitとUIKitの併用でハマった

ゲーム開発、思わぬところでどハマリしています…(-_-;
技術的な話題になります。

えーとswiftで開発しておりまして、2D描画はSpriteKitを利用しておりました。

でもSpriteKitってUITableViewみたいなのが無いじゃないですか。

なのでデータ一覧表示だけUIKitのUITableViewを使っていました。

んで、今開発しているキャンプ画面のアイテム一覧表示のところで、アイテムを捨てる処理に着手したんですね。

上記画面の左下「捨てる」ボタンを押した時の処理です。

間違って捨てるボタン押しちゃう事もあるので、ボタン押されたら確認ダイアログを表示させようと思ったんです。「本当に捨ててもいいですか?」みたいなやつ。

そしたら…

UITableViewの前面に、SpriteKitのNodeオブジェクトが表示されない…

どういうことかと調べてみると、UIKitのオブジェクトの上に、SpriteKitのオブジェクトを重ねるのは不可能とのこと。(逆は可能)

対策を色々と検討しましたが…

結局UIKitでダイアログを自作するより他に選択肢がないと結論しました。

で、昨日からずっとUIKitバージョンのメッセージオブジェクトとボタンオブジェクトを開発中です。

最初は普通にUILabelとUIButtonでちゃちゃっと作ろうとしたのですが、細かい表示とか挙動とかがSpriteKitのインターフェースと違ってしまいまして…

結局、UIViewとUILabelを組み合わせた自作インターフェースになりましたよ…

今現在はこんな感じです。苦戦ぶりが伝わるでしょうか。

UIKitとSpriteKitは座標の扱いが結構違うので、SpriteKit製オブジェクトの表示を再現するだけでも一苦労です…

という訳で、これからSpriteKitで開発しようという方にアドバイスを。

私のようにテキストばっかり表示するゲームを作るなら、SpriteKitを使わずにUIKitだけで作ったほうがいいですよ!

SpriteKitは画像処理が優秀ですが、テキスト周りがものすごく使いづらいし、上記の通りUITableViewのような便利なインターフェースが存在しません。全部イチから作るか、部分的にUIKitを利用する形となります。

で、部分的にUIKitを使うと、私のように変なハマり方をすることうけあいです。

ああしんどい…今日はこの辺で…

スポンサーリンク
広告336×280
広告336×280

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告336×280
この記事ではコメントを受け付けていません。