トップページ > 過去ログ > 記事閲覧
描き込み可能な空のグラフィックは作れますか?
名前:チルチル 日時: 2009/12/22 16:09

DXライブラリを使わせていただいてゲームを作っているのですが 演出の1つとして敵や弾を描画した後に画面を変形させたいと思っています 私が思い付く方法は 敵や弾を裏画面に描画した後に MakeGraph関数で作ったグラフィックに GetDrawScreenGraph関数で裏画面をコピーして DrawPolygonBase関数等で変形して裏画面に描画する方法です しかし画面の取り込みは時間がかかる上に MakeGraph関数で作成したグラフィックが DrawPolygonBase関数やDrawPolygon3D関数で 使用できるかも自信が無いです・・ そこで質問なのですが 描画系関数の画像ハンドルに裏画面を渡したり MakeGraph関数で作成したグラフィックを SetDrawScreen関数で描画先に設定できないでしょうか? とは言っても試してみて無理だったので 何か同じような結果を実現する方法は無いでしょうか? まとめると、空のグラフィックを作成して それを描画先に設定して敵や弾をそこに描画した後に描画先を裏画面に戻して ポリゴン系の描画関数にそのグラフィックのハンドルを渡して 色々と変形を加えて裏画面に描画する DXライブラリでこのような事は可能でしょうか?

Page: 1 |

Re: 描き込み可能な空のグラフィックは作れますか? ( No.1 )
名前:いっち 日時:2009/12/22 20:34

SetDrawValidGraphCreateFlag関数を使用すれば可能らしいです。 (私は試したことないです) 詳しくは下記のスレッドをご覧ください。 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1532
Re: 描き込み可能な空のグラフィックは作れますか? ( No.2 )
名前:チルチル 日時:2009/12/22 23:39

え〜と過去ログでは画像を読み込む時に使っていますが SetDrawValidGraphCreateFlag関数にtrueを渡してから MakeGraph関数で作ったグラフィックは 描画先に設定できて、サイズが2の乗数ならポリゴンにも使えるんですか?
Re: 描き込み可能な空のグラフィックは作れますか? ( No.3 )
名前:管理人 日時:2009/12/27 12:44

はい、その通りです 因みに MV1LoadModel などの3Dモデル描画関数と一緒に描画可能画像を使用する場合 現在公開している正式バージョンでは正常に描画されないことが確認できていますので、 もし3Dモデル描画機能と一緒に使用される場合はバグを修正したこちらのバージョンをお使い下さい m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 描き込み可能な空のグラフィックは作れますか? ( No.4 )
名前:チルチル 日時:2009/12/29 23:46

良くわかりました、どうもありがとうございます 今の所はモデルを使う予定は無いですが 一応バックアップさせていただきます あと話は変わりますが DXライブラリは非公開関数が多いと聞きました なぜ非公開になっているのでしょうか?
Re: 描き込み可能な空のグラフィックは作れますか? ( No.5 )
名前:管理人 日時:2010/01/03 23:21

非公開関数が非公開である理由は以下のどれかです ・需要の少ない関数をリファレンスに載せたくない( 煩雑になるので ) ・環境依存が激しい( 実際非公開関数で DirectX9版から意味が無くなった関数が幾つかあります ) ・要望に応じて突貫工事で追加した関数はなるべく公開しない ・私の怠慢 リファレンスに載せても良いと思える関数でも DxLib.h にしか書かれていない場合は大抵私の怠慢です (・・;
Re: 描き込み可能な空のグラフィックは作れますか? ( No.6 )
名前:チルチル 日時:2010/01/17 22:28

なるほど〜ライブラリ製作も大変そうですからね ところでDxLib.hで関数を確認していたところ MakeGraph関数の次にMakeScreen関数を見つけました 注釈を見てみると // 空のグラフィックを作成 // 描画可能な画面を作成 という違いがあるようなのですが 先ほど教えていただいた方法で 描画可能なグラフィックは作れますよね? 「描画可能な画面」と「描画可能なグラフィック」 これらの違いは何なのでしょうか? 気になるので教えて頂きたいです
Re: 描き込み可能な空のグラフィックは作れますか? ( No.7 )
名前:管理人 日時:2010/01/28 01:46

MakeScreen 関数は中で SetDrawValidGraphCreateFlag と MakeGraph を使用して 描画可能なグラフィックを作成しているだけですので、SetDrawValidGraphCreateFlag と MakeGraph を使用して作成するグラフィックハンドルと何も違いは無く、全く同じものです MakeScreen は描画可能な画像を公開機能にしようかと考えていたときに追加した関数で、 その場合「描画可能なグラフィック」という表現より「描画可能な画面」とした方が 分かりやすいと思って表現を変えていました
Re: 描き込み可能な空のグラフィックは作れますか? ( No.8 )
名前:チルチル 日時:2010/01/29 20:44

なるほどラッパー関数でしたか 確かに1つにまとめた方がわかりやすいですね ではMakeScreen関数の方を使わせていただきます ちなみにMakeScreen関数は内部で MakeGraph関数を使用した後に もう一度SetDrawValidGraphCreateFlag関数を呼んで falseを渡しているのでしょうか? 別にどっちでも問題は無いと思いますが 後々何かあるかもしれないので 一応確認させてください
Re: 描き込み可能な空のグラフィックは作れますか? ( No.9 )
名前:管理人 日時:2010/01/31 22:40

MakeScreen では MakeScreen を呼ぶ前の SetDrawValidGraphCreateFlag 関数の設定を保存しておいて、 MakeGraph を呼んだ後にその設定を復元する形になっています、なので MakeScreen を呼ぶ前と後で SetDrawValidGraphCreateFlag 関数の設定が変化するということはないようになっています
Re: 描き込み可能な空のグラフィックは作れますか? ( No.10 )
名前:チルチル 日時:2010/02/06 21:57

呼ぶ前の状態を維持してくれるんですか それは便利ですね これは良い事を聞きました どうもありがとうございます

Page: 1 |