メイドイン俺:カウンタ編

今日も今日とてメイドイン俺の小ネタメモ。昨日はリズムゲーだったので、今日はパズル用でも。

=カウンタ=

「何回タッチされたかをカウントする」という手法も色々な実現方法があるが、今回説明するのは「位置によるカウンタ」。


「1回ごとに右に1マス進む」+「15マス先のエリアにぶつかったらフラグオン」という「ぶったい」を作っておけば、これのフラグオンだけで「15回ホゲホゲしたか」の成功判定ができる。「対象を右に1マス進ませる」のは「対象の1マス右に瞬間移動」+「対象と場所入れ替え」で実現可能。
この手法なら、「アニメ」のような「1ぶったいにつき4カウントまで」みたいな制限がなく、ぶつかるのを「エリア」以外のものにすれば色々と応用が利く。
その代わり、「場所入れ替え」を使うため、元の位置に戻るにはさらに別の「元の場所記憶用のダミーぶったい」が必要だったりする。

=カウンタ:応用=

上のカウンタを応用して、神経衰弱のような「対応するものがタッチされたか」の判定が可能。


例えば、「◎」をカウンタとして、斜めにマスが並ぶ「ぶったい」と以下のような位置関係にする。

◎□□□□□
□■□□□□
□□■□□□
□□□■□□
□□□□■□
□□□□□■

さらに、対応付けを「右に1マス:下に1マス」「右に2マス:下に2マス」...という風にすれば、「右に1つ移動した後は、下に一つ移動した場合のみぶつかる」という風になるので、「ぶつかる=成功」「ぶつからなかった=失敗」とできる。


失敗判定のために、下の「×」のマスを持つ物体を重ねることもできる。

◎□□□□□
□■××××
□×■×××
□××■××
□×××■×
□××××■


「◎」を0.5マスの大きさで書けば、上のマスの並びも一つの「ぶったい」のグラフィックとして収まる。


実際に使う場合、他にも色々と手間があるため、神経衰弱として使う場合には「4セット」が限界だった。もしかしたらもっと上手い方法があるかもしれないが。


わざわざ2次元にしなくても「右に1マス:左に1マス」みたいにして「中央に来たら成功」でもできるかもしれないが、一応「2次元という考えもあるよ」というサンプルとして。