トップページ > 記事閲覧
DXライブラリの基本的な仕様について
名前:ひろかず 日時: 2020/02/08 08:37

Windowsで2Dゲームを作成したく、DXライブラリを導入しました。 DXライブラリ(及びC++)は、全くの初心者なのですが、基本的な部分で分からない点があり質問いたします。 1.DirectXでは毎フレーム画像を書き換えしないといけないと思っていたのですが、 「DXライブラリの使い方」にあるプログラムでは、 DrawPixel( 320 , 240 , GetColor( 255,255,255 ) ) ; // 点を打つ WaitKey() ; // キー入力待ち とたった2行のプログラムで毎フレーム画像を書き換えているように見えません。 また、「DXライブラリゲームプログラム開発講座」を見ても、 LoadGraphScreen( 0 , 0 , "test1.bmp" , FALSE ) ; // 画面に絵を表示 WaitKey() ; // キーの入力待ち となっており、こちらも同様です。 内部的にはどのような動作になっているのでしょうか? 例えば、ゲームのタイトル画面を表示する処理を作成した場合、 上記のように「LoadGraphScreen」「WaitKey」の組み合わせだけで全く問題は無いのでしょうか? 2.「LoadGraph」関連で質問があります。 リファレンスページを見ると、画像サイズについて特に何も明記されていませんが、制限は無いのでしょうか? 画像サイズは2のべき乗じゃないとまずいと思っていたのですが、そういう事はありませんか? それとも自動的に2のべき乗サイズに調整されてメモリに保存されていたりするのでしょうか? 3.DXライブラリでの2Dゲームの作成について一般的な手法を知りたいです。 (1)「LoadGraph」でキャラクター画像が詰まった巨大画像を読みこみ (2)「DerivationGraph」でキャラクター単位に画像を抜き出す (3)「DrawGraph」で画面に表示 このような手順でよろしいのでしょうか? それとも、もっと速度的に効率の良い方法はありますか? 以上、よろしくお願い申し上げます。
メンテ

Page: 1 |

Re: DXライブラリの基本的な仕様について ( No.1 )
名前:motoYo 日時:2020/02/08 10:35

まずは他のサイトを訪れてみては...? リファレンスに書いてあるプログラムはあくまで動作確認的なものがほとんどなので、それだけではわからないこともあると思います。 DxLibでゲームづくりの解説をしているサイトなどもあり、基本的には全てそちらで解説されています。(必ずどこかにはあります) おそらくその内容はここで解説するには狭すぎると思うので... >1.DirectXでは毎フレーム画像を書き換えしないといけないと思っていたのですが、 DirectXの仕様では、その必要はありません。 >とたった2行のプログラムで毎フレーム画像を書き換えているように見えません。 実際に書き換えているのは1度だけです。 >内部的にはどのような動作になっているのでしょうか? コメント記載の事が行われています。(WaitKeyでは、ProcessMessageが呼ばれていたような。) >例えば、ゲームのタイトル画面を表示する処理を作成した場合、  上記のように「LoadGraphScreen」「WaitKey」の組み合わせだけで全く問題は無いのでしょうか? 事実上できないことはないですが、おすすめされる書き方では有りません。 >画像サイズは2のべき乗じゃないとまずいと思っていたのですが、そういう事はありませんか? いい場合とまずい場合がありますが、まずい場合はライブラリ側で調整が入ります。 >DXライブラリでの2Dゲームの作成について一般的な手法を知りたいです。 別のサイトを訪れて、そこで学ぶのが一番だとは思いますが、一応僕が使っている定型をおいておきます。 //---------------start main.cpp #include <DxLib.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DxLib::ChangeWindowMode(TRUE); //ウィンドウモードで起動 DxLib::SetWaitVSyncFlag(TRUE); //垂直同期待ちをする。 DxLib::SetGraphMode(1280, 720, 32); //スクリーンの設定 DxLib::SetWindowSize(1280, 720); //ウィンドウサイズの設定 if(DxLib::DxLib_Init() == -1) return -1; //エラーが出たら終了 DxLib::SetDrawScreen(DX_SCREEN_BACK);//描画先を裏画面にする。 while (!DxLib::ProcessMessage()) { //ここにメインプログラムを書く。 DxLib::ClearDrawScreen(); DxLib::ScreenFlip(); } DxLib::DxLib_End(); return 0; } //---------------end main.cpp おそらくこれを見てもすぐにはわからないと思います。 ただ、これを一つ一つ説明するのはけっこう大変なので、解説してあるサイトを自分で探して見てはどうでしょうか?
メンテ
Re: DXライブラリの基本的な仕様について ( No.2 )
名前:ひろかず(解決) 日時:2020/02/09 08:28

>>motoYoさん ご返信いただき、誠に有り難うございます。色々なサイトを見て勉強したいと思います。 また、定型サンプルのご呈示、誠に有り難うございます。参考にさせて頂きます。 有り難うございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存