なうろーでいんぐ
キーボード↑↓
でもいいぞ
旧サイト形式へ帰りたい人
ファイルが無い際の処理
2011年04月13日12時59分
書き出し時に、読み込み必須ファイルが無い場合、
既存のパッケージファイルからファイルを読み書き
しなければならないと気付いてかなり時間食った。
こんな時にこそ、std::mapのイテレータが物を言う。
最初のパッケージファイルからの読み込み時に、
各情報をstd::mapを用いて格納してれば、検索を
超楽チンにできる、という事を知ったのがつい先程。
外出して、帰ってきたら早速それで組み立てよう。
画面解像度の件はまだちょっと思考中。


同日 21:30
パッキング一段落ついたので、配布してみます。
エラー多いけど。

*既に更新版が上がっています。

中に見難いreadmeアリ。ここまで作るのにかなり
時間かかったわ…。ぼちぼちまだ進めていきます。


同日 3:12
ウィンドウサイズ処理実装。フルスクリーンは
サイズに合わせた最大化への変更とし、基本サイズは
変更不可能にした。最小化した時にスレッドを
停止するのも忘れない。次はフォーム入力関連。
いずれにせよ文字列は使う時が来るからね・・・。
記事カテゴリ:プログラム関連
データ読み込み成功
2011年04月12日18時00分
パッキングデータからの読み込み成功。
ファイル 368-1.png
後は暗号化さえしっかりしてればデータ漏洩防止可能。
次はデータ読み込み関連の順位付けとデータ出力かな。
ダイアログから現在のデータでパックを出力、という形に
できればカスタマイズブロック崩しツールは、ほぼ完成。
やっとここまで来たか・・・。


同日 22:23
パッキングによる設定保持出力&読込起動まで完成。
ファイル 368-2.png
残るはファイルの優先順位、そして今更気が付いたが、
ウィンドウの解像度変更の可否を処理せなアカン。
次から次へと・・・
記事カテゴリ:プログラム関連
ファイルパッキング
2011年04月11日18時15分
STLの理解はまだ若干曖昧に感じるが、パッキングの
入出力は理解できたと思う。ワイルドカードといい、
かなり厄介な部分があるが、ぬるりと進めるとしよう。
うむ、テンプレートの理解が追いついてきた。
やはりイテレータはポインタと同じ考え方でいいな。


4月12日 1:36
パッキングは上手く行った。
変数値とファイル情報の個数を先頭ヘッダーに取り、
各自のヘッダーをそこから準備、情報を書き込んで
一つのファイルにし、更にそこから情報を取り出す
まではできたんだが、バイナリのポインタから
ファイルのポインタへの橋渡しをどうすればいいのかを
悩んでる。多分そのまま渡せば動くとは思うんだが。


同日 3:58
動いた。結局fopenで開いてclose前に内容を送り、
fcloseすると同時にremoveするという荒い形になった。
何か他に方法無いのかね・・・。
記事カテゴリ:プログラム関連
ダイアログ進行
2011年04月10日15時00分
ダイアログ表示位置設定と項目&機能追加。
ファイル 366-1.png
画像入れ替えの前に、端ブロックの判定と走査方法を
ちょっと考える必要があると考えている。
面倒だが、どの方向の端ブロックなのかを保持して
それによって処理を分けるしかないか・・・。
そろそろ別動のクリア表示処理も真面目に考えないと
あかんなぁ。それに配布用パッキングもせんとアカン。

先日の描画関数内で描画元から持ってくるsizeの
指定を端フラグでif分岐すれば、まんま動くヨカン。
ブロック数が極端に増加した場合どうなるか不安になり、
1pxブロック動かしてみたら、案外普通に動いてワロタ。
流石に動きはちょっと鈍くなったが;

因みに、その時のブロックの総数簡易判定で78084個。
1秒1個壊す換算でも21時間半以上かかる。
そんなブロック崩ししたくないデス。


同日 17:00
端判定ちゃんと動いたで。
画面サイズがブロックサイズで割り切れる場合も
上層で考慮済み。ブロック生成側でフラグも立てたし。
画像はdib自身と引数の相手のdibでのビット内容比較。
ファイル 366-2.png
これでようやく画像入れ替えとかブロック追加を
まともに考える事ができるわ。


同日 21:11
透明ブロック追加。
画像は見やすい様に可視化した状態。
ファイル 366-3.png
ブロックサイズ可変、透過色(黒)を指定して色以外が
含まれるならブロックと化す感じにした。
2重壁と違うのは、判定は通常ブロックと同時に
行われるので、かぶった部分が消えてしまう点。
とりあえずは上手く動いて一安心。
2重壁を上手く部分指定するには、おそらく
第一段階のブロックとして上乗せする画像の更に
差分を取ってそこを判定し、2重壁の判定を先に行い、
ぶつかっていれば通常ブロックの判定は飛ばす、
というやり方で出来そうな気がするが如何に。


4月10日 0:04
思った通り、2重壁作成完了。
ブロック衝突時のSEも通常と別物に変更完了。
ダイアログの設定を詰めたらそろそろファイルを
パッケージングするコードを考えるとしよう。


同日 1:27
ダイアログに二重壁実装完了。
その間、3重以上の壁の作り方考えたんだが、
3重とかにするんだったら、参照するdibを引数に
個数分取って逐一検査していかないとあかんのよなぁ。
・・・追々としてそろそろコード整理しよう。
記事カテゴリ:プログラム関連