※動作フロー (メニュー画面とかあればそれを描画するプログラム、まだ実装も未確定) ↓ 初期値設定 初期状態描画 左クリックもしくは「レディーゴー!」で別スレッドの移動関数内部whileフラグがオン 終了orクリア判定(ボールが落ちる or ブロック全ての衝突フラグが立つ) 移動後衝突判定(クリア時はボールの動きを止める) InvalidetaRectによる描画(ゲームオーバーorクリア時は文字列描画にも処理を渡す) ↓ 分割数が決まっているので、 GetBitsでのアクセスをブロック単位でスキャンし、 元の画像と差異がどこかで生じたら そのブロック全体を上にのせる画像でアルファブレンドmixさせる。 (4分木で差異が存在するかを判定すると比較的高速。) 但し、衝突フラグが立っていた場合は処理を無視する。 ※クリア後 左クリックを押す 次のステージがある場合 ↓ 描画する画像を入れ替え、フラグを初期化して最初から。 完全クリアの場合 ↓ クリア部屋の描画(ブロック崩しとは全く別) 完全クリアフラグを用意し、上記動作フローでの判定を全て飛ばせる形にしておく。 裏画面でコメント画像なりボタン画像なりを予め描画しておき、クリア画像を徐々に縮小あるいはフェードアウト。 表示が完全に終わったかをフラグ管理し、終わったならボタンを押せる。 画像を押すと画像がウィンドウサイズに拡大もしくはフェードインし、ボタン無効化、 画像をもう一度クリックするとフェードアウトして戻る。 保存ボタンでコモンダイアログから画像の保存が可能。 終了ボタンでexit。 もう一回ボタンで完全初期化し最初から。 サイトボタンで公開サイトへ。(クリア時の各表示部分は別ツールでカスタマイズ可能にする) ※未解決点 ファイルパッキングから入出力が必要。 ファイルパッキングデータをカスタマイズツールから出力する必要もある。 画像を置くだけでも動く形にしたいので、パスからファイルが存在するか否かを検知。 優先度は 画像 > パッキングデータ (一々パッキングを移動するの面倒だし) カスタマイズツールで設定できる要素の確定 ※要望 初期状態でバー無しに閲覧後、クリックでバーを表示する閲覧時間を用意。あるいは別に閲覧モードを用意。 クリックで開始するかレディゴーにするかはカスタマイズ可能にしておく。 クリア後にスコア表示を行う。(得点に付随する要素は現状全く無いが拡張性の為) スコアに応じてボーナス特典とかつけると更にいいかもしれん。 メニュー画面とCGモードの実装(必要に応じて有り無しを切り替え可能、これまたコードの長さから完全に無いverと分けて用意) 読み込み画像形式複数対応(要権利問題考慮) メール送信機能(余計かもなのでオンオフを設定出来る様にする、速度重視側の為に無いverと分けておく) カスタマイズできるのは、残機、ブロックサイズ、ボールサイズ、速度、 画像、BGM、衝突音、クリア部屋の各項目表示位置と画像。 (動作の予測されない大きさ等を設定した場合は自己責任を明記) ※注意点 ブロック崩し自体の動作中のウィンドウサイズは変更不可能にしておく。(画像サイズによってはフルスクリーン不可) ウィンドウサイズは画像優先で決定する。 画像orパッキングファイルが無い場合はその旨をメッセージボックスで表示する。 (その際、黒画面を後ろに用意すると圧迫感があるのでいいかもわら)