C#.net + DXライブラリでマップエディタを作成しております。
全体マップの縮小図の表示について質問致します。
マップサイズは16*16チップを500*500敷き詰める程度とします。
・描画内容を即座に縮小図にも反映させたい。
・縮小図内にマップ表示範囲に対応した矩形カーソルを描画し、
それをマウス操作で移動させることでマップ表示範囲も移動させたい。
上記に対して下記①、②を試してみました。
①縮小したチップを500*500個DrawExtendGraph()で描画。
→ 毎フレーム描画するとリアルタイムで反映されるが処理が重い。
→ マップが編集された直後だけ描画するようにすると、カーソル移動の描画ができない。
②あらかじめMakeScreen()で作成したスクリーン(s)を用意しておいて、マップが編集された直後だけ
sに全体マップ500*500個をDrawExtendGraph()し、GetDrawScreenGraph()でハンドル(h)に格納。
あとは毎フレームDrawExtendGraph(h)で描画する。
→ カーソルがリアルタイムで描画できる。
→ GetDrawScreenGraph()が重く処理落ちが顕著でマップを連続的に編集できない。
以上、何かセオリー的なものはあるのでしょうか?
ご助言頂ければ幸いです。宜しくお願い致します。
マップエディタに於ける縮小図について。
Re: マップエディタに於ける縮小図について。
MakeScreen関数の返す値がスクリーン(s)のグラフィックハンドルなので、それを使って描画できます。Synergy さんが書きました:②あらかじめMakeScreen()で作成したスクリーン(s)を用意しておいて、マップが編集された直後だけ
sに全体マップ500*500個をDrawExtendGraph()し、GetDrawScreenGraph()でハンドル(h)に格納。
あとは毎フレームDrawExtendGraph(h)で描画する。
→ カーソルがリアルタイムで描画できる。
→ GetDrawScreenGraph()が重く処理落ちが顕著でマップを連続的に編集できない。
GetDrawScreenGraphを使う必要がありません。
Re: マップエディタに於ける縮小図について。
コメント有り難うございます。
仰る通り、GetDrawScreenGraph()を使わずに目的を達成できました。
どうも有り難うございました!
仰る通り、GetDrawScreenGraph()を使わずに目的を達成できました。
どうも有り難うございました!