DXライブラリを使うプロジェクトについて
書き手: Jun
初期設定
開発環境
- Visual Studio 2013 Professional
- DXライブラリ
プロジェクト設定の細かなところ
- [新しいプロジェクト]->[Visual C++ 空のプロジェクト]->["ソリューションのディレクトリを作成"のチェックを外す]
- プロジェクト内にソースファイルを1つでも含めたあとに,プロジェクトの設定ができる.
- ディレクトリの設定は相対パス指定(例:"..\DxLib_VC\プロジェクトに追加すべきファイル_VC用")が可能.このルールを決めると,人のプロジェクトをまるごとコピーしても設定なしで実行できる.
- ソリューションエクスプローラーで[すべてのファイルを表示]のアイコンを押すと,ディレクトリでソースコードの管理ができる.
- 人のプロジェクトをまるごとコピーしても動かないときは,協力して新しいプロジェクトを作ってみる.いずれ慣れたときに,原因がわかるようになる.原因がわかるようなら,gitなどのバージョン管理でプロジェクトの共有が可能.
理想のWinMain.cpp
#include "DxLib.h" #include "GameMain.h" int WINAPI WinMain( HINSTANCE hInstance, // 現在のインスタンスのハンドル HINSTANCE hPrevInstance, // 以前のインスタンスのハンドル LPSTR lpCmdLine, // コマンドライン int nCmdShow // 表示状態 ){ // ウインドウモードにする. ChangeWindowMode(TRUE); // ウインドウがアクティブではない状態でも処理を続行するか否か. SetAlwaysRunFlag(TRUE); // Log.txtの出力をしない. SetOutApplicationLogValidFlag(FALSE); SetMainWindowText("ゲームタイトル"); SetGraphMode(800, 600, 32); if (DxLib_Init() != 0){ return -1;; } // 裏画面を使う. SetDrawScreen(DX_SCREEN_BACK); // Game本体の初期化. GameMain* game_main = new GameMain(); // メインループ. while (ProcessMessage() == 0 && ScreenFlip() == 0 && ClearDrawScreen() == 0){ int frame_start_time = GetNowCount(); game_main->update(); if (CheckHitKey(KEY_INPUT_ESCAPE)){ break; } int frame_end_time = GetNowCount(); // 現在のフレームにかかった時間を表示する. DrawFormatString(700, 30, 0xffffff, "%d", (frame_end_time - frame_start_time)); // 30フレームに調整する. WaitTimer((1000 / 30) - (frame_end_time - frame_start_time)); } // Game本体の削除. delete game_main; DxLib_End(); return 0; }
ウインドウサイズ,フレーム数は定数で用意しておくとさらにいい.