サンプル1を作ってから1年以上になり、考え方もずいぶん変わってきました。そこで、今の実力での基本プログラムを作ってみました。
「GameSamp.lzh」をダウンロードし、解凍すると次のファイルが作成されます。
ファイルの種類 ファイル名 説明 BITMAPファイル backImg.bmp 背景画像 chara.bmp キャラクタ画像 title.bmp スタート画面タイトル画像など String.bmp 文字列画像(キャラクタコード順に並べたもの) ソースファイル ddutil.cpp MSSDKのDirectDrawサンプルについているラッパー関数 Start.cpp スタート画面のプログラム Game.cpp ゲーム画面のプログラム myDraw.cpp DirectDraw関係の共通プログラム WinMain.cpp 基本プログラム ヘッダファイル common.h 共通ヘッダファイル(define文など) ddutil.h ddutil.cppのヘッダファイル Start.h Start.cppのヘッダファイル Game.h Game.cppのヘッダファイル myDraw.h myDraw.cppのヘッダファイル
上記のファイルを任意のフォルダに格納し、プロジェクトを作成します。作成方法は次のとおりです。
- プロジェクトの新規作成でWin32Appricationを選択し、作成。
- 作成したプロジェクトのフォルダに上記すべてのファイルをコピー。
- ビットマップファイルを元にリソースファイルを作成する。
4つのBitmapを持つリソースファイルが作成されるので、名前を付けて保存する。
- 「挿入」→「リソース」を選択し、リソース一覧から「Bitmap」を選択して「インポート」ボタンをクリック
- ファイルの種類を「全てのファイル」にし、4つのBitmapファイルを選択して「OK」ボタンをクリック
- ソースファイル、リソースファイルをプロジェクトに追加する。
成功すると、ワークスペースの内容が次のようになる(はず)。
- 「プロジェクト」→「プロジェクトへ追加」→「ファイル」を選択
- ファイルの種類が「C++ ファイル」になっていることを確認し、ウィンドウに出ている全てのファイルを選択して「OK」ボタンをクリック
- Source Files
- ddutil.cpp
- Game.cpp
- myDraw.cpp
- Script.rc(リソースファイル名)
- Start.cpp
- WinMain.cpp
- Header Files
- common.h
- ddutil.h
- Game.h
- myDraw.h
- resource.h
- Start.h
- Resource Files
- backImg.bmp
- Chara.bmp
- String.bmp
- Title.bmp
- 外部依存関係
- basetsd.h
- 「Resource View」でBitmapの中を見ると、4つのBitmapファイルはそれぞれIDB_BITMAP1、IDB_BITMAP2といった名前になっているので、わかりやすい名前に変える。
プログラム中で指定している名前は次のとおり
- 変えたいビットマップを右クリックし、「プロパティ」を選択
- IDを任意の名前に変える
新IDはダブルクォーテーションで囲むことを忘れないように!!
旧ID 新ID ファイル名 IDB_BITMAP1 "TITLE" Title.bmp IDB_BITMAP2 "CHARA" Chara.bmp IDB_BITMAP3 "STRINGS" Strings.bmp IDB_BITMAP4 "BACKIMG" backImg.bmp - DirectDrawを使えるようにプロジェクトの設定を行う。
- 「プロジェクト」→「設定」を選択
- 「リンク」タブをクリックし、「オブジェクト/ライブラリ モジュール」に以下のライブラリを追加
- ddraw.lib
- dxguid.lib
- winmm.lib
- 追加したら「OK」ボタンをクリック
以上の設定を行い、ビルドすればexeファイルが出来上がる・・・はずなんですが、どうでしょう。成功すればこんなんが出来ると思うのですが・・・
エラーもなくビルドできたら実行してみましょう。「げーむたいとる」というスタート画面が出ると思います。なお、これも音を出していません。
スペースキーを押すと、ゲームが始まります。ゲーム画面では、左下にキャラクタが表示されています。カーソルキーの左右で移動でき、両側の壁に触れるとスタート画面に戻ります。
スタート画面はStart.cppを、ゲーム画面はGame.cppをいじればどのようにも改造できるという点は前のプログラムと変わりません。
一番の改良点は「common.h」です。これにより、ソースファイルごとにddraw.hなどのヘッダ・ファイルを宣言する必要がなくなっただけでなく、キャラクタデータの構造体などをここに宣言することにより、どのソースでも使えるようになったことです。