どうも。
今回も開発ログを書いていきます。前回の記事はコチラです。
それではどうぞ。
開発環境
- ソースコード管理: GitHub
- ライブラリ: Phaser(javascript)
- マップ管理: Tiled
現在の進捗
各効果音の追加
今回、ゲームの爽快感を演出するために、効果音を各所に追加しました。 コイン取得時、ジャンプ時、木箱破壊時、ゴール時など色々な場所に追加しております。
効果音やBGMはフリー音源サイトさんから拝借いたしました。
速度超上昇時の地形すり抜けバグ
プレイヤーを強化し続けると、速度があまりにも大きくなりあらゆる地形を無視して進みます。明らかなバグで、正直放置でも良かったと思っています。 プレイヤーに有利でゲームを根本から破壊するようなものでないバグは取り除くべきではないと思っているので。
アプローチ1 対症療法
ただ、一応対策はしておこうかと思い、まず本事象に対して以下の対策を講じました。
- コイン取得時の加速倍率を下げる
- 速度を下げる代わりに他の能力を上昇させる特殊能力を追加
二つとも言ってしまえば対症療法ですが、何もしないよりはマシかと思ったので実装しておきました。とりあえず速度を下げる代わりにコインでのスコア倍率を高めるようにしておきました。
アプローチ2 原因療法
すり抜けの事象自体に対する処置ですが、正直調査に時間をかけましたがわかったことが「1フレームあたりの移動速度が大きいため=速いため」となってしまいました。
冗談はさておきPhaserで用いている物理エンジンの中の話になるのでちんぷんかんぷんな方もいるかもしれませんが、一応対処法を紹介しておきます。
物理エンジン側による、「衝突対象の床(もしくは壁)から外へのプレイヤーの押し出し」の強さが足りないことがおそらく原因だったので、この値を少し大きくしました。
こうすることで、あまりに大きい速度(一フレームで床や壁の幅以上に進んでしまうような速度)ではない場合は一旦すり抜けは発生しなくなりました。
その他細かい調整
ゲームをリッチに見せるため、タイトル画面を追加したり、スマホでの操作に対応するように修正しました。
この辺はまだまだ調整のしがいがありそうですが、一旦はこの状態で最後のプレリリースをしても良いかなと思っています。
今後の構想
スマホ画面での操作ボタンの挙動(複数タッチが微妙)、ハイスコア機能、チュートリアル機能を追加しようと思います。
これで一通りやりたいことが実装できそうなので、リリースに向けて引き続き頑張っていきます。
では、次回の進捗にてまた会いましょう。