2018年11月27日火曜日

自作カラコロッタ7 ゲームの流れ

さて、まずはとりあえずサルサルベージ6面でゲームがうまく進行する、というのが第1目標。
そのためには、ボールが発射される機構を内部処理する必要がある。

たとえばスペシャルチャレンジに関するもろもろの事項などもなかなか考えなければいけない。
最初の3球で発射されたときにSPに2回入ったとき、どういう挙動をするかにも注意する必要がある。

そこで我は「まとめチェッカー」というのを導入しようと思う。
43個の変数(最大で43球なので)を準備し、はじめは0という変数値がそれぞれ43個に付されており、まず最初の3球は例外なので別途処理。はじめの変数3つに-1,-1,-1を代入しておく。
さて、ここからが本番。
その3球のうちにSPに入れば、はじめて-1で無い部分に1の値を代入。その後2つには-1を代入。仕様上SPチャレンジ途中にSPチャレンジが起こらず、起こるときはその3球発射が終わってからだからである。
つまり、1という値はこの球数でスペシャルチャレンジが発生する、ということを示すフラグとなる。-1を代入するのは、0にしてしまうと発射されていない部分の0と、発射されてそこはスペシャルチャレンジ発生球数ではない0という情報がごちゃまぜになるから。

例としては、たとえば1,2,3球目は普通で、4,5球目にSPが入ると、以下のリストを得る。
-1,-1,-1,-1,1,-1,-1,1,-1,-1,…
これはつまり、5,8球目にSPチャレンジ実行せよ、ということになる。
こうすればSPがどんどん入っていっても(実際はほぼそんなことはおこりえないが)その回数分がちゃんと蓄積されることになる。
こういうのはワンダフルチャレンジとかだと使うことになるが、カラコロッタ3ではなさそう?
しかし万が一、SPに3連続とかいうこともなきにしもあらずなのでこのあたりはしっかりと作っていく。

あと、ゲームの挙動の話だが、とりあえずサルサルベージの場合は動画をいろいろさぐってみてみると、3球同時発射の場合でも各球が1つずつ入るごとに配当獲得演出がおこなわれているらしいので、このゲームだけはSPであろうがなかろうが関係なく、処理を楽に行える。
前回つくった自作アニマロッタ風ゲームでは、球を一気に走らせすぎると引数の参照を上書きされたものでみてしまったために道中のボールの抜け落ちが発生していたのだった…。

なので今回はその反省をふまえて、現在発射された球数までどんどん処理を行っていく手法をとろうとかんがえている。たとえば一気に40球発射されても、その40球目になるまでしっかりと全部の球に対して判定を行うということである。

なんかこの部分は言葉で説明するのが難しい…?まあとりあえずゲームがまともに動くようになって、PO率を算出できるデバッグモードがつくれるようなところまでいけばうれしいんだが…。