ゲームオーバーと同時にレベルアップする問題
昨日、調べる予定だったのだが、
ちょっと別のことをやってて時間が取れなかったので
あむさんより指摘のあった
ゲームオーバーと同時にレベルアップするとおかしくなる
というのを今日、調べてみた。
こんなかんじでゲームオーバーのメニューと
レベルアップの文字が出て
この状態で決定ボタンを押すと
ゲームオーバーメニューでリトライを選択したことになり
マップの入り口にミクが移動した状態で
レベルアップの文字列が出ていることに・・・
最初は、内部で持っているゲームモードがゲーム本編でない時は
レベルアップチェックをやらないようにすれば良いと思っていたのだが
それだと、ゲームオーバーメニューとレベルアップのメッセージが
同時に出ないだけでリトライ直後にレベルアップするのは変わらない。
実は、プログラム内では、魔法のネギと敵との当たり判定と
ミクと敵/ミクと敵の弾の当たり判定は、同じ関数の中で行っている。
それぞれ当たりと判定されると
・敵を消して経験値取得
・ゲームモードをゲームオーバーにする
という処理をしているのだ。
なのでゲームオーバーモードでレベルアップ通知をしなくても
既に経験値は取得済みなのでレベルアップ判定でレベルアップしてしまう。
このため、ゲームモードの判定に加えて
当たり判定関数に入った時の経験値と
ゲームオーバーモードにした段階での経験値を比較して
値が異なっている場合、当たり判定関数に入った時の経験値に戻す
ということをしないとダメっぽい。
タイミング的に確認が難しいので
今後もこういう微妙なタイミングの確認用にちょっと
ゲームのデバッグ機能を拡張して確認しようと思う。
遅くとも週末には、確認できるようにしようと思う。
| 【固定リンク】 | 【コメント (0)】 | 【トラックバック (0)】
このエントリーへのリンク
トラックバック
この記事へのトラックバックの一覧です: ゲームオーバーと同時にレベルアップする問題:
コメント
このブログの新着コメントをRSSリーダに登録する為のxml