床変化

量産型Brelgが新規に出現するときは、乱数を使って出現位置を決定します。
床パネルの操作は、求めた出現位置を流用して行っています。


if cnt<15&dmm<28000000:dmc\=10:dmc+7


cntは量産型Brelgのオブジェクト番号で、0〜14の番号がついた量産機を新規出現
させるときだけ有効になるようにしています。
実際には条件を満たさず出現しないことがあるので、全部(最大90機)を対象にすると
床の変化がうるさくてたまりませんので、15機分に制限しています。


dmmは、操作地点から見た、プレーヤー機の距離の2乗。
あまり遠くのパネルまで操作すると、つまらないことになりますので、プレーヤー機
からの距離が一定範囲にあるときに床変化が実行されるようにしています。
dmcは、床パネル配列の、操作地点に対応する要素をdupしたもの。
これを見れば床タイプがわかるし、直接操作もできます。


dmc\=10:dmc+7 は、dmcの1の位に7を足したものをdmcに入れるという操作です。
そのまま dmc=dmc\10+7 とするより、バイト数が節約されています。
この操作により、床タイプは、0→7→14→11→8→15→12→9→16→13→10→7…
というように単調な昇順ではない順序で変化していきます。
0の床なしに戻らないところと、0の次が7という少し飛んだ値になるのも重要。
ちなみに16がダメージパネル。11が低速パネルです。
11より5段階変化すると16、更に5段階変化すると11に戻ります。
同じ5段階の変化毎に特殊パネルが出て、その差も5(色指定で好都合)。


Ver1.15ではgrectで床を表示しています。
床の色指定は color (dmc\5=1)*205,dmc*10,(dmc&15)*15 です。
(dmc\5=1)*205 は、dmcを5で割った余りが1のときに205それ以外は0ですので、
床タイプの対応として11と16だけがR輝度を持つことになります。
dmc*10は、dmcの10倍の値(0,70〜160)がそのままG輝度ということです。
(dmc&15)*15は、床タイプ0と16はB輝度0、それ以外はdmcの15倍(105〜240)。
ノーマルパネルはdmcが7以上ですので、最低でもG:70、B:105の輝度が確保できます。
このような輝度指定の結果、床タイプ16のダメージパネルはオレンジ、床タイプ11の
低速パネルはピンクで色設定されます。
(本当は逆の色割り当てにしたかったけど、出現の早い11をダメージにするのは
ゲーム性に影響するので断念)


うまくパネル番号と表現の辻褄が合うように工夫しつつ、なるべくバイト数を掛け
ないようにしていますが、結構大変です。