最後はゲームの微調整。
得点に絡むイベントは、
・得点が加算されると徐々にスピードがあがる
・一定の得点に達すると、スピードが緩やかになる
・200点と500点で、ミスがクリアされるボーナスがある。
これを作りこむ。
得点を加算した後に、MOD関数を使って、20で割った余りが0の時にTIMER.CLEAR命令でタイマーをクリアして、タイマーの間隔を少しずつ短くしていく。
こうすると、短い間隔で通行人の処理が呼ばれるので、スピードが上がる。
20点ごとにスピードが上がって、100点ごとにもとに戻すようにした。
200点と500点で、ミスが1つでもあれば、ミスマークを点滅させて、クリアするアニメーションを見せる。
ミスを0に戻せば、ボーナスイベントが完成。
!通行人スピードアップ・ダウン処理 !20点ごとにスピードを増す IF MOD(sc,20) = 0 & sc > 0 THEN TIMER.CLEAR IF itv > 500 THEN %際限なくは早くしない itv-=25 ENDIF TIMER.SET itv ENDIF !100点ごとにスピードを戻す IF MOD(sc,100) = 0 & sc > 0 THEN TIMER.CLEAR !ミスクリア IF (sc=200 | sc=500) & miss>0 THEN SOUNDPOOL.PLAY sp,4,0.99,0.99,1 FOR t=1 TO 5 FOR q=1 TO miss GR.HIDE ms_obj[q] NEXT GR.RENDER PAUSE 500 FOR qq=1 TO miss GR.SHOW ms_obj[qq] NEXT GR.RENDER PAUSE 500 NEXT FOR q=1 TO 3 GR.HIDE ms_obj[q] NEXT miss=0 ENDIF itv=600 TIMER.SET itv ENDIF !999点でカウンターストップ→0に戻す if sc=1000 then sc=0
このゲームを屋外で遊ぶことを考えると、音は出せないこともあるなと。マンホールでは、通行人が通ると、ピッとビープ音が鳴る。そうすると、別の場所に移動しても通行人は落ちない。
この音が重要で、連続して通行人を通れるようにするときは音を聞いてから次、次と移動させる。
音自体は、wavファイルを作って鳴らせたが、聞こえないとなると困るなと。
そこで調べていると、VIBRATE命令なるものがあり、スマホのバイブを動かせる。
これで、音と同時にバイブを振動させることによって、音を消していても十分遊べるようになった。
!バイブレーションパターンの配列 ARRAY.LOAD vpt[],1,150 VIBRATE vpt[],-1
こうして完成したのがこれ。
youtu.be
なにも考えず、仕様も練らずに思い付きで付け足して作ったので、あまり良いプログラムでは無いけど、作って動かして遊ぶ。という昔のBASICの懐かしさを、存分に味わうことができた。
これもAPKファイル化して、普段使っているスマホにインストールして、暇な時間に遊んでいる。