シューティングゲーム用のプロジェクトの準備と,シューティングゲームの元になるシンプルなプログラムを動作させてみよう

【ゲーム用プロジェクトのための設定】(最初に一回だけ行う設定作業

 ※以下の作業に入る前に,使用しているWebブラウザが FireFox であることを確認せよ。


 (手順0)ゲーム作成用プロジェクトのダウンロード

    表示されるウインドウで「ファイルを保存する」を選び,「OK」ボタンを押して『TuisDXGameKit.zip』という
    ファイルをダウンロードせよ。下図は『ダウンロード』フォルダにダウンロードした場合である(下図)。

     

    ダウンロードした『TuisDXGameKit.zip』ファイルをエクスプローラで開くと『TuisDXGameKit』フォルダがある。
    

    さらにその中に 『TuisDXGame』というフォルダがあることを確認せよ。
    


 (手順1)『TuisDXGame』フォルダのコピー
大学推奨ノートPCでの作業

(a)手順(0)で確認した『TuisDXGame』フォルダをウィンドウ左端の『ドキュメント』フォルダへコピー。



(b)『ドキュメント』フォルダの中に「TuisDXGame」フォルダがあるはずである。これがこれから利用するゲーム用プロジェクトのフォルダである。

(c)『TuisDXGame』フォルダの中の『TuisDXGame.vcxproj』ファイルをダブルクリックで開く。
すると,以下の(i)〜(iii)いずれかの様になるはずである。

(i) Visual Studio が起動する。この場合はそのまま手順(d)へ進め。
(ii) 「Microsoft Visual Studio Version Selector」というソフトが起動する。この場合は,
  次の(iii)をとばして(iv)へ進め。
(iii) 以下の様な内容が表示されたら,①「Microsoft Visual Studio」をクリックして選んで,
  ②「常に使う」をクリック。Visual Studio が起動するはずなので,起動したら手順(d)へ進め。


(iv)「Microsoft Visual Studio Version Selector」で,使用する Visual Studio のバージョンを指定する(Visual Studio の後ろの西暦番号が一番新しいものを選べば良い)。すると,指定された Visual Studio が起動する。

(d)Visual Studio がサインインを要求してきたら,大学のメールアドレスとパスワードでサインインする。

(e)起動した Visual Studio がプロジェクトファイル『TuisDXGame.vcxproj』からプロジェクトを読み込もうとする。その時,
 ・「セキュリティー警告」
    や
 ・「セットアップアシスタント」というウインドウ内に「一部のプロジェクトは、コンポーネントが不足しているか、古いツールセットをターゲットにしています」
という表示が出たら,それぞれ以下の様にすること。

■「セキュリティ警告」の場合:OKを押す。



■「セットアップアシスタント」というウインドウ内に「一部のプロジェクトは、コンポーネントが不足しているか、古いツールセットをターゲットにしています」の場合:

 下図の手順で「再ターゲット」とという処理を行い,このプロジェクトを Visual Studio 2026 用に設定する。




(f)右側の「GitHub Copilot チャット」というウインドウは閉じておこう。




(g)「ソリューションエクスプローラー」のウインドウを開こう。

 もし,下図の「ソリューションエクスプローラー」というウインドウが開いてなかったら,
「表示」メニュー→「ソリューションエクスプローラー」を選んで表示させよう。




(h)「ソリューションエクスプローラー」ウインドウで,「TuisDXGame」プロジェクトが読み込まれていること,
  「ソース ファイル」フォルダ内に main.cpp というプログラムファイルがあることを確認しよう(下図参照)。






●では,実際にプロジェクトをして実行してみよう。

 右向きの緑の三角形をクリックすると,プログラムがコンパイルされ,実行される。

 ・緑色の円が,ウインドウ(画面)の左上から右下に移動していくのを確認すること(下の動画参照)。

  実行した様子


 ・プログラムを終了するには終了は,エスケープキーを押す。
 ・次回は,このプログラムの内容を解説する。


【DXライブラリについて】
 ・このプログラムは山田巧氏が作成した「DxLib (DXライブラリ)」を一部改造して利用させて頂いています。

  『DXライブラリ置き場』https://dxlib.xsrv.jp/

 (この授業で使用する改造版「DXライブラリ」とオリジナルの「DXライブラリ」の違いを知りたい人は,
  下の【授業外記事】を参照して下さい。)


【授業外記事】

 《注意》
  このシューティングゲームに利用されているDXライブラリは,大学の授業用に改造された物です。自分でDXライブラリを利用
  したプログラムを自作したい人は,以下の点に注意して下さい。

   ・オリジナルのDXライブラリを,上記のサイト『DXライブラリ置き場』からダウンロードして使用すること。
   ・DXライブラリ使用のための下準備に関しても上記のサイト『DXライブラリ置き場』の説明に従って行うこと。ただし,
    オリジナルの「DxLib_VC」フォルダは,この授業で使用している「DxLib_VC」フォルダとは別の場所に置くこと。
   ・プロジェクトを作る場合は,上記のサイト『DXライブラリ置き場』の説明に従ってプロジェクトを作成して下さい。
   ・プログラム作成上での違いは,以下の通りです。

 
大学の教材フォルダで
配布したDXライブラリの作法
オリジナルのDXライブラリの作法
mian関数の形
int main( ) {
  
  
  /* 処理を書くところ */

  return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, int nCmdShow ){

  if( DxLib_Init() == -1 ) return -1;

  /* 処理を書くところ */

  DxLib_End();
  return 0;     
}
DxLib_Init()関数 main関数の冒頭で自動的に呼ばれます。DXライブラリ
の初期化に失敗するとプログラムは終了します。

DXライブラリの機能を使う前に,DxLib_Init()関数を呼び出してDXライブラリの準備
を整える必要があります。これを「DXライブラリの初期化」と言います。だいたい,
上欄の様にmain関数の冒頭で
  if( DxLib_Init() == -1 ) return -1;
として初期化を行います。

DxLib_End()関数 main関数の最後(return 0; の直前)で,自動で呼ばれます。 DXライブラリの機能を使い終わる前に,DxLib_End()関数を呼び出す必要があります。
典型的には上欄のように,main関数の最後( return 0; の直前)などで呼び出します。
その他,プログラムの実行中でも「DXライブラリの機能はもう使わない」という局面
で呼び出すと,DXライブラリに使用されていたメモリなどが解放され,それ以降のプログラムの動作などが軽快になります。
ProcessMessage()関数 CheckHitKey()関数の実行時に,自動で呼び出されます。 Windowsでスムーズにプログラムを実行させるには,このProcessMessage()関数を
1/60秒に1回くらいの頻度で呼び出す必要があります。

※大学で授業用に配布したDXライブラリは,授業に不要なファイルをいくつか削除した上で,オリジナルのDXライブラリの「DxLib.h」というファイルの中身を改造したものになっています。
 つまり,このファイル「DxLib.h」を交換すれば,どちらの作法でプログラムを書くか自由に決められます。
 なお,「DxLib.h」は,「DxLib_VC」フォルダ内にある「プロジェクトに追加すべきファイル_VC用」フォルダに入っています。