Appearance
第01回 環境確認とプロジェクト構造
次回: 第02回 ゲームループと描画
今回の授業内容
- 最終的に作る2Dシューティングゲームの仕様を確認する
- 開始用プロジェクトをVisual Studioで動かす
SourceとAssetsの役割を確認するmain.cpp、Game.h、Game.cppの役割を読む- 次回以降にコードを追加していく土台を用意する
この授業で作るもの
この授業では、DXライブラリを使った2Dシューティングゲームを13回で作ります。
完成版では、プレイヤーを移動させ、弾を撃ち、敵を倒し、スコア、HP、残り時間、ゲーム状態を管理します。
完成版の仕様は最初に確認しますが、完成版コードを写す授業ではありません。
第01回では最小構成のプロジェクトを動かし、第02回以降で機能を1つずつ追加します。
完成形の仕様
| 項目 | 仕様 |
|---|---|
| 画面サイズ | 640x480 |
| 操作 | 矢印キーまたはWASDで移動、ZまたはSpaceでショット |
| 開始 | タイトル画面でEnter |
| プレイヤー | HPを3持ち、敵に当たるとダメージを受ける |
| 弾 | 最大48発を固定配列で管理する |
| 敵 | 最大24体を固定配列で管理し、一定間隔で出現する |
| エフェクト | 最大32個を固定配列で管理し、敵撃破時に表示する |
| クリア条件 | スコアが30に到達する、または制限時間を生き残る |
| ゲームオーバー条件 | プレイヤーのHPが0になる |
| リトライ | 結果画面でEnterを押す |
画像と音声は任意素材として扱います。
素材がない状態でも、図形描画と無音でゲームロジックを確認できる構成にします。
今回の開始状態
配布ファイルからstarter.zipをダウンロードして展開します。
第01回では、この開始用プロジェクトだけを使います。
- Project
- Source
- main.cpp
- Common.h
- Game.h
- Game.cpp
- Assets
- Images
- Sounds
- Source
SourceにはC++のソースコードを置きます。Assetsには画像や音声など、実行時に読み込むファイルを置きます。
最初に読むファイル
main.cppはゲームを起動する入口です。
DXライブラリの初期化、ウィンドウ設定、Gameの実行、終了処理を担当します。
cpp
Game game;
if (game.Initialize())
game.MainLoop();
game.Finalize();Game.hは、ゲーム全体が持つ関数の宣言です。Game.cppは、それらの関数の中身です。
第02回以降は、主にGame.hとGame.cppへ機能を追加します。
実装手順
- DXライブラリ用のVisual Studioプロジェクトを作成する
starter/Source内の.hと.cppをプロジェクトへ追加するAssetsフォルダを実行ファイルから見える位置へ配置する- ビルドして、ウィンドウに
DX Library Projectと表示されることを確認する Common.hのscreenWidthとscreenHeightが画面サイズに使われていることを確認する
第01回ではゲーム機能を追加しません。
環境を整え、次回から同じプロジェクトを継続して編集できる状態にします。
よくある問題
DxLib.hが見つからない場合は、DXライブラリのインクルードディレクトリを確認する- リンクエラーが出る場合は、ライブラリディレクトリと追加の依存ファイルを確認する
- 黒い画面だけで文字が出ない場合は、
SetDrawScreen(DX_SCREEN_BACK)とScreenFlip()が呼ばれているか確認する Sourceに追加した.cppがVisual Studioプロジェクトへ登録されているか確認する
今回の完成条件
- 開始用プロジェクトをビルドして実行できる
SourceとAssetsの違いを説明できるmain.cppがゲームの入口であることを説明できるGame.hとGame.cppの役割の違いを説明できる- 次回以降に同じプロジェクトを継続して編集できる
まとめ
今回は、完成形の仕様と開始用プロジェクトの構造を確認しました。
次回は、この最小プロジェクトへプレイヤーの仮図形を追加します。