はじめに
開発効率を上げるためにはデバッグやテストのしやすさが重要です。ウィンドウモードでの作業はアプリケーションの動作を確認しながら、プログラムの変更をテストできるため大きなメリットがあります。この記事ではウィンドウモードへの切り替え方法と、アプリケーション終了後、すぐにウィンドウが閉じてしまう対策を紹介します。
関連記事
開発環境
- Windows11
- Visual Studio 2022
- DXライブラリ Ver3.24d
ウィンドウモード
フルスクリーンモードはゲームを遊ぶのに適していますが、開発の初期段階ではデバッグ作業において不便を感じることがあります。ウィンドウモードなら複数のアプリケーションを同時に表示できるため、プログラムの修正と結果の確認を素早く行うことができます。まずはウィンドウ化をするためにChangeWindowMode
関数を使います。
#include "DxLib.h"
int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpcmdLine, _In_ int nCmdShow )
{
// ウィンドウモード
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() == -1 )
{
// -1ならエラーとしてゲーム終了
return 0;
}
// DXライブラリの破棄
DxLib_End();
return 0;
}
ChangeWindowMode関数の引数にTRUE
を指定するとウィンドウモードになります(FALSE
を指定するとフルスクリーンモード)また、この関数を呼び出さなかった場合はフルスクリーンモードで起動します。
ChangeWindowMode関数はDxLib_Init関数より先に呼び出すことをお勧めします。DxLib_Init関数の後でこの関数を呼び出すとアプリケーションが一度フルスクリーンモードで起動した後にウィンドウモードに切り替わるため、動作としてはやや不自然です。
プログラムの一時停止
現状では何か画面に表示されるプログラムを書いてもすぐに終了してしまうため、これもデバッグには不便です。以下のようにWaitKey
関数を使うとプログラムを一時停止できるようになります。
#include "DxLib.h"
int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpcmdLine, _In_ int nCmdShow )
{
// ウィンドウモード
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() == -1 )
{
// -1ならエラーとしてゲーム終了
return 0;
}
// プログラムの一時停止
WaitKey();
// DXライブラリの破棄
DxLib_End();
return 0;
}
WaitKey関数は何か入力があるまでプログラムを一時停止します。これで実行結果を確認できるようになりました。
WaitKey関数はKeyという名前がついていますが、実際はマウスやコントローラーの入力にも反応します。