ダイアログ表示位置設定と項目&機能追加。
画像入れ替えの前に、端ブロックの判定と走査方法を
ちょっと考える必要があると考えている。
面倒だが、どの方向の端ブロックなのかを保持して
それによって処理を分けるしかないか・・・。
そろそろ別動のクリア表示処理も真面目に考えないと
あかんなぁ。それに配布用パッキングもせんとアカン。
先日の描画関数内で描画元から持ってくるsizeの
指定を端フラグでif分岐すれば、まんま動くヨカン。
ブロック数が極端に増加した場合どうなるか不安になり、
1pxブロック動かしてみたら、案外普通に動いてワロタ。
流石に動きはちょっと鈍くなったが;
因みに、その時のブロックの総数簡易判定で78084個。
1秒1個壊す換算でも21時間半以上かかる。
そんなブロック崩ししたくないデス。
同日 17:00
端判定ちゃんと動いたで。
画面サイズがブロックサイズで割り切れる場合も
上層で考慮済み。ブロック生成側でフラグも立てたし。
画像はdib自身と引数の相手のdibでのビット内容比較。
これでようやく画像入れ替えとかブロック追加を
まともに考える事ができるわ。
同日 21:11
透明ブロック追加。
画像は見やすい様に可視化した状態。
ブロックサイズ可変、透過色(黒)を指定して色以外が
含まれるならブロックと化す感じにした。
2重壁と違うのは、判定は通常ブロックと同時に
行われるので、かぶった部分が消えてしまう点。
とりあえずは上手く動いて一安心。
2重壁を上手く部分指定するには、おそらく
第一段階のブロックとして上乗せする画像の更に
差分を取ってそこを判定し、2重壁の判定を先に行い、
ぶつかっていれば通常ブロックの判定は飛ばす、
というやり方で出来そうな気がするが如何に。
4月10日 0:04
思った通り、2重壁作成完了。
ブロック衝突時のSEも通常と別物に変更完了。
ダイアログの設定を詰めたらそろそろファイルを
パッケージングするコードを考えるとしよう。
同日 1:27
ダイアログに二重壁実装完了。
その間、3重以上の壁の作り方考えたんだが、
3重とかにするんだったら、参照するdibを引数に
個数分取って逐一検査していかないとあかんのよなぁ。
・・・追々としてそろそろコード整理しよう。