ポーズ画面の実装が面倒

SKSceneのpausedプロパティを書き換えるだけなので、
要求によってはあっさり実装することができる。

特定のラベルをボタン代わりにして、
こんなんでも、十分機能する。

-(void)pause
{
    self.paused = !self.paused;
    // todo: BGMの制御
}

あとは、BGMの再生/一時停止の制御をするだけなんだけど、
いくつか問題がある。
これはiPhone特有の問題なんだけど、
ホームボタンが押された時と、電話が掛かってきたときの処理について。
これらは、ユーザーの意思とは関係なくポーズさせたくて、
何が面倒かというと、ラベルのタッチからも、
外部要因からも同じところで処理したい。
差分としては、ラベルをタッチした場合は、
ポーズ画面に入るときに音を出したい。

ちなみに、pausedプロパティを変更しても、
updatetouchesBeganが呼ばれる。
touchesBeganが呼ばれないとポーズが解除できないから良いとして、
updateは描画前に呼ばれる訳で、
この中で移動させると、ポーズ中でもキャラクターが動いてしまう。

個人的には、ポーズを解除するボタンを点滅させたいんだけど、
どうしてもそれを実装したい場合は、このupdateで処理することになりそう。

あと、ざっくり5人日くらいですかね!(*1)

おしまい。

(*1) 寝る前に数時間ずつ進めているので、日数に換算すると2〜3倍するのが妥当かな

Leave a Comment