夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【BeeCluster】ごめんなさい。バグがありました。

BeeClusterをダウンロードして遊んでくださっている皆様、どうもありがとうございます。
そんな皆様にご連絡があります。

BeeClusterのサポートページにバグのご報告を頂きました。

ご報告くださいました「読者」さん、詳細な状況と現象のご説明をありがとうございました。
おかげさまで不具合の原因がすぐにわかり修正することができました。

現在バグの修正が完了し、アドホック環境でプログラムの他の部分に影響がない事をテストしています。
このテストが終了しましたら修正版をアップルに提出いたしますのでもう少々お待ちください。

ご迷惑をおかけしますが、ボスとの対戦後に「画面が黒くなり進まない」、「自機が出てこない」などの現象が発生した場合はアプリを強制終了して再起動してくださいますようお願いいたします。
強制終了の方法はこちらをご参照下さい。

不具合について:

この不具合は二つの状態遷移が同時に起こる事を想定していない事が原因でした。

状態遷移の一つはボスがやられたときに次のステージに進む処理で、もう一つは最後のハチ(自機)がやられたときにゲームオーバーにする処理です。

最後のハチとボスが当ってお互いにやられると報告いただいた真っ黒な画面になります。
BeeClusterのあたり判定は敵と敵の弾が行い、自機はコリジョン発生時にその報告を敵側から受けます。ボスがやられるときにも自機に対しコリジョンを報告していたため、前述の2つの状態遷移が同時に発生し、アプリがクラッシュしていました。
これを防ぐため、ボスがダメージを受けてライフが0になったときは自機へのコリジョン報告をしないように修正しました。
修正後は同条件ではボスだけがやられ、自機はやられなくなりました。

このバグの調査中にもう一つ問題が見つかりました。
これも同じ原因なのですが、発生条件と現象が異なります。
これは、ボスと最後のハチがほぼ同時に弾に当ってやられるときに発生し、ハチの残数が0の状態で次のステージが始まってしまいます。

このバグは、ボスがやられたとき、あるいは最後のハチがやられたときはすぐにゲーム全体の当たり判定を止める事で修正できました。
修正後は一方がやられたあと画面が切り替わるまではもう一方には弾が当らずに突き抜けるようになりました。