2013年12月08日

約1ヶ月ぶりくらいの更新。あいかわらず全然作業進まず。

時間がないことを言い訳にしてはいけないというのはわかってはいるのですが、仕事が忙しいとどうもダメですね。もっとも土日は案外ゲームしてたりするんですが。(ちなみに今はAnother Mist WorldというRPGをやってたりします)

今週はとりあえず効果音の再生とかステージ構成を作り始めたりとかしてみました。

バックグラウンド移行時のBGM停止

とりとまではポーズをしたときにBGMを一時停止します。あと、プレイ中にバックグラウンドに移行した時にはポーズをするようにしています。

なので、バックグラウンドに移行したらBGMを一時停止するような動きになって欲しいところなのですが、AppDelegate::applicationDidEnterBackground()SimpleAudioEngine::pauseBackgroundMusic()を実行してもなぜかフォアグラウンドに戻すとBGMが鳴ったままの状態になっています。

なんかデジャブを感じたのでEvernoteで探してみたところ、傾撃でも同じような問題にぶつかっていて、ちゃんとブログに書いていました。(サウンド再生の実装

この時も原因は分かっていなかったのですが、とりあえず対策は判明。pauseBackgroundMusic()ではなくstopBackgroundMusic()だと止まるようです。が、今度はresumeBackgroundMusic()で再開ができなくなりました。傾撃では問題なかったのですが、cocos2d for iPhoneとcocos2d-xでは何か違うということでしょうか。

どうしようかと色々考えては見たのですが、デススマイルズを見てみるとバックグラウンドに移行する時ではなく、フォアグラウンドに戻った時にポーズ処理が走っているようなのでそれを真似することにしました。フォアグラウンドに戻った時に一瞬BGMが鳴るのが気になりますが、許容範囲でしょう。

バグの対応

作業をしていると2,3バグが見つかったので修正。

ひとつ目は一時停止メニューでボタンを押した時に効果音を鳴らす処理を入れた時に検出。ボタンを押したらボタン点滅→点滅終了後に処理実行、と動かすために'CCSequence'を使って`CCSequence::create(ボタン点滅, ボタン処理, NULL)'みたいにするのですが最後のNULLが抜けていたためにabortしてました。作った時に一回くらいは動かしたと思ってたんですが、動作確認忘れてたんですかね。

ふたつ目はアリを画面に配置した時にエラー。アリとか地面を歩くキャラは配置した時に地面を歩くか天井を歩くかを決めるために上方向のブロックと下方向のブロックとどちらが近いかを調べているのですが、画面に出てきていないブロックの画像の位置を取得しようとしてエラーになっていました。ちなみに普通はキャラクターは登場するときにnewしていなくなったらdeleteするのかもしれませんが、私の場合は最初に必要数分メモリを確保してそれを使いまわすので、使ってないメモリ領域が結構あったりします。なんとなくメモリアロケートに時間がかかりそうなイメージがあるのですが、多分私の気のせいです。

3つ目もアリの動き。なぜか地面と天井を瞬間移動してしまいます。これはまだ原因を調べていないので対応はたぶん来週になりそうです。

ラベル:とりとま
posted by かねだ at 22:48| Comment(0) | 開発記録 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。