改修

工事完了です…。


昨日は一日スコアアイテム点数の不具合修正とゲームオーバー時のスコア周りの改造をしていた。

不具合は弾幕のテストをしている時に発覚した。2ボスに使える弾幕がないかと思い既存の弾幕を片っ端からチェックしていく中で、弾の量が多めの弾幕の発射源に自機を置いてしばらく早送りで放置していたのだ。

するとどうだ、本来上限を3200点に設定していた筈のアイテム点数が青天井で上昇してゆくではないか。

しまいには1個当たりの点数が20万点を超え、程なくしてスコアがオーバーフローを起こした。

原因は、アイテム点数の倍率上限をゲージで設定していたつもりだったが、それが全く働いていなかったからである。横着はイケナイネ!

それを受けて、得点アイテムのスクリプトに個数を条件にした条件分岐を仕込んだ。ここは割とさっくり解決。


しかしその過程で「ゲームオーバー時のスコアの処理」という問題が浮かび上がってきた。こんな事はそもそもエブリエクステンド(≒取得スコア曲線が等差級数的)なら無視しても良い話なのだが、うちのはエクステンド点数が倍々ゲームで増えてゆくので、ゲームオーバーからの復帰時を考えるとエクステンド回数的に今ひとつよろしくない事になる。

そこで、ゲームオーバー時にスコアと、上昇したエクステンドスコアをリセットさせる事にした。僕のイメージとして「スコアラーはスコア目的ではコンティニューしない」というのがあるので、ゲームオーバー時にスコアがリセットされても何の問題もないと判断したのだ。まあまずそこまでやり込んでくれる人がいるのかって話だけど。


これは苦戦した。特に「コンティニュー回数を何処でどう判定するか」、これに悩まされた。

当初はコンティニュー時に残機がマイナスになるのかと思い自機の破壊時タスクにそんな(どんな)感じのスクリプトを組んだのだが、当然の如く失敗。次にコンティニュー回数。結論としてはこれで良かったのだが、自機の破壊時タスクでは上手く動いてくれなかった

そこで不可視のアイテムに頼る事にした。だがこれも単体では上手く行かなかった。そう、単体では。

スコアリセットアイテムを発射するキャラを別個に作ったのだ。

そのキャラでコンティニュー回数をチェックし、コンティニューする度にリセットアイテムを発射。そのリセットアイテムで現在スコアとエクステンドスコアをリセット、というやり方。

もっとスマートな方法があるのかも知れないけど見えないキャラが1体余計にプカプカ浮いてるだけだし、僕はこれでいい。


そう言えばこの一連の過程で、コンティニュー時に謎の1点が加算される現象が確認された。デフォルトスクリプトを見ても分からなかった。あれは何なのだろう?


---------------------------------------------------------

こういうのを書くのは備忘録的な意味も勿論あるが、これからSBのスクリプトについて理解を深めようとしている方々への一助になればと思い書いている部分もある。まあ今僕がTwitterでフォローしている人達は漏れなく自分より技術が上なのでそういう意味では現状意味はないと言い切っても良いのだが、いつか来る(来たれかし)完成版公開にまで至れば、SBでゲームを作ろうと思い立ったばかりの人がこの駄文を気紛れに読む可能性も微粒子レベルで存在しているだろう。

それによってそういう人が何かしらのノウハウを吸収して、望みのゲームを作ってくれれば正に本懐。


…追い越されないようにしないとね。

この記事へのコメント

この記事へのトラックバック