ページ 11

32bitと16bitの変更

Posted: 2010年6月22日(火) 22:35
by あ~る
お久しぶりです。
龍神録の館でゲーム作りを学んでいる者です。
今回、大分ゲームの方が区切りがついたので、コンフィグソフトを制作しています。
そしてコンフィグの中で龍神録や東方で実装されているように、画面のモードを32bitと16bitで変えられるようにしようと思ったのですが、方法がわかりません。
何かそれ用の関数を使うのか、自分で処理を作るのか、若しくは他の方法なのか・・・
どなたか教えて頂けると嬉しいです。

BorlandC++でDXライブラリを使っています。

Re:32bitと16bitの変更

Posted: 2010年6月22日(火) 23:33
by Justy
>画面のモードを32bitと16bitで変えられるようにしようと思ったのですが、方法がわかりません。
 SetGraphMode関数の第三引数で指定できます。


# ところで何でコンフィグを別ソフトにしようとしているんでしょうか?

Re:32bitと16bitの変更

Posted: 2010年6月22日(火) 23:54
by あ~る
ありがとうございます!
こんな関数知りませんでした・・・これで実装出来ます。

>>ところで何でコンフィグを別ソフトにしようとしているんでしょうか?
他のゲームなども分けてるので、分けようと思ったんですが確かにわかりません(ぉ
多分、SetGraphMode関数などは

この関数を実行するとロードしたすべてのグラフィックデータハンドル、 作成したフォントハンドルは自動的に削除され、SetDrawArea, SetDrawScreen, SetDrawMode, SetDrawBlendMode, SetDrawBright 等の描画に関係する設定を行う関数による設定も全て初期状態に戻りますので、 画面モード変更後 LoadGraph関数や CreateFontToHandle関数等で再度ハンドルを作成し直し、 描画可能領域、描画対象画面等の各種描画系の設定も再度行う必要があります。
(DXライブラリリファレンスページより)

となっているので、最初に読み込む前に全て設定し、ゲーム中に設定するのは避けているのだと思います。
キーコンフィグや初期ライフ・ボムなんかのデータはゲーム中のコンフィグ画面で設定しています^^

Re:32bitと16bitの変更

Posted: 2010年6月23日(水) 00:18
by Justy
>最初に読み込む前に全て設定し、ゲーム中に設定するのは避けているのだと思います
 確かにこのあたりは面倒な処理なので別に作れば楽という面はありますけど、
最悪自分で自分のアプリを再起動するだけでも達成できるような気がします。


>キーコンフィグや初期ライフ・ボムなんかのデータはゲーム中のコンフィグ画面で設定しています
 なるほどコンフィグはプレイ環境系とゲーム設定と分かれているのですね。
 なら別のままでもいいのかもしれませんね。
 失礼しました。

Re:32bitと16bitの変更

Posted: 2010年6月23日(水) 07:46
by ookami
ところで、

> 画面のモードを32bitと16bitで変えられるようにしようと思った

のは、「ゲームをプレイする人のモニタが32bitに対応していなかったらコンフィグで16bitに落としてもらう」ためでしょうか?

だとしたら、「現在使われているビット数を取得する関数」かなにかがあれば、コンフィグで選択させる必要がなくなるって事でしょうか。

32bitとか16bitが分からない人もいると思いますし…


ということで、取得するならこんな感じでいかがでしょうか。

HDC DesktopDC=GetDC(NULL);
screenBit=GetDeviceCaps(DesktopDC,BITSPIXEL);
ReleaseDC(NULL,DesktopDC);