マップエディタに於ける縮小図について。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Synergy

マップエディタに於ける縮小図について。

#1

投稿記事 by Synergy » 7年前

C#.net + DXライブラリでマップエディタを作成しております。
全体マップの縮小図の表示について質問致します。

マップサイズは16*16チップを500*500敷き詰める程度とします。
・描画内容を即座に縮小図にも反映させたい。
・縮小図内にマップ表示範囲に対応した矩形カーソルを描画し、
 それをマウス操作で移動させることでマップ表示範囲も移動させたい。

上記に対して下記①、②を試してみました。

①縮小したチップを500*500個DrawExtendGraph()で描画。
  → 毎フレーム描画するとリアルタイムで反映されるが処理が重い。
  → マップが編集された直後だけ描画するようにすると、カーソル移動の描画ができない。
②あらかじめMakeScreen()で作成したスクリーン(s)を用意しておいて、マップが編集された直後だけ
 sに全体マップ500*500個をDrawExtendGraph()し、GetDrawScreenGraph()でハンドル(h)に格納。
 あとは毎フレームDrawExtendGraph(h)で描画する。
  → カーソルがリアルタイムで描画できる。
  → GetDrawScreenGraph()が重く処理落ちが顕著でマップを連続的に編集できない。

以上、何かセオリー的なものはあるのでしょうか?
ご助言頂ければ幸いです。宜しくお願い致します。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

Re: マップエディタに於ける縮小図について。

#2

投稿記事 by ISLe » 7年前

Synergy さんが書きました:②あらかじめMakeScreen()で作成したスクリーン(s)を用意しておいて、マップが編集された直後だけ
 sに全体マップ500*500個をDrawExtendGraph()し、GetDrawScreenGraph()でハンドル(h)に格納。
 あとは毎フレームDrawExtendGraph(h)で描画する。
  → カーソルがリアルタイムで描画できる。
  → GetDrawScreenGraph()が重く処理落ちが顕著でマップを連続的に編集できない。
MakeScreen関数の返す値がスクリーン(s)のグラフィックハンドルなので、それを使って描画できます。
GetDrawScreenGraphを使う必要がありません。

Synergy

Re: マップエディタに於ける縮小図について。

#3

投稿記事 by Synergy » 7年前

コメント有り難うございます。

仰る通り、GetDrawScreenGraph()を使わずに目的を達成できました。
どうも有り難うございました!

返信

“C言語何でも質問掲示板” へ戻る