落下人の移動が一通りできたので、いよいよゲームになるように、キャッチとミスの判定処理を作る。
まずはキャッチの判定から。落下人を同時に動かすようにしたので、どうしても複数個所に同時に落ちてしまう。それを救うために、キャッチの判定を緩くする方法を考えた。
ミスになる前にキャッチできればいいので、救助隊が移動したときに、落下位置に人がいればキャッチした情報をキャッチ判定用の文字列に追加するようにした。
;キャッチ判定 switch px case 0 fpos=instr(fmanpos,0,"E") if fpos>=0 { poke fmancatch,fpos,'E' } swbreak case 1 fpos=instr(fmanpos,0,"M") if fpos>=0 { poke fmancatch,fpos,'M' } swbreak case 2 fpos=instr(fmanpos,0,"S") if fpos>=0 { poke fmancatch,fpos,'S' } swbreak swend
ミスの判定は、落下人の移動処理のときしか行わないようにした。
そして、ミスにするのは落下人が次の位置に移動する直前。つまり、しばらくは空中に浮遊しており、その間に救助隊が下にくれば、ミスにならないようにした。
たぶん、本家も似たような緩い判定になっているのではと思う。
こうして、ほぼゲームの形はできあがった♪
youtu.be
次は音などの装飾にかかろう。