Skip to content

ゲームプログラミング実践
C++/DXライブラリ入門

DXライブラリを使って2Dシューティングゲームを作りながら、C++によるゲームプログラミングの基本を学びます
開始用プロジェクトから各回で段階的に実装し、最終的に基本的なゲームの完成を目指します

授業の流れ

テーマ主な内容
第01回環境確認とプロジェクト構造開始用プロジェクトの実行、完成仕様の確認
第02回ゲームループと描画プレイヤー座標、仮図形、更新と描画
第03回入力と移動Inputクラス、移動、画面内制限
第04回構造体と矩形Vec2Rect、当たり判定準備
第05回弾を撃つ弾構造体、固定配列、有効フラグ
第06回敵と衝突判定敵構造体、生成、衝突、スコア、HP
第07回クラス分割入門PlayerBulletEnemyへの分割
第08回画像とリソース管理ImageManager、画像描画、失敗時フォールバック
第09回ゲーム状態タイトル、プレイ中、結果、リトライ
第10回音と演出SoundManager、撃破エフェクト
第11回参照・ポインタ・寿命所有関係、const参照、不要なポインタの点検
第12回独自要素の追加設計メモ、小さな拡張、動作確認
第13回デバッグ・調整・発表提出前チェック、調整、発表

実装の進め方

この教材では、完成版コードを先に読んで写すのではなく、開始用プロジェクトへ毎回少しずつ実装を追加します。

各回のページでは、次の情報を示します。

  • 今回の開始状態
  • 今回変更するファイル
  • 追加するメンバ変数や関数
  • 実装する順序
  • 動作確認とよくある問題
  • 今回の完成条件

完成版プロジェクトは、最終的な仕様確認や、授業後の差分確認に使います。

完成版プロジェクト

完成版は、外部素材がなくても動作する2Dシューティングゲームです。

  • Gameクラスでゲーム全体の状態を管理する
  • PlayerEnemyBulletEffectを個別のクラスに分ける
  • 固定配列のオブジェクトプールで弾、敵、エフェクトを扱う
  • タイトル、プレイ中、ゲームオーバー、ゲームクリアの状態を持つ
  • 当たり判定、スコア、残り時間、デバッグ表示を実装する
  • 画像と音は任意素材として差し替えられる構成にする

到達目標

  • C++の基本構文を、ゲーム制作の文脈で説明できる
  • 1フレームの入力、更新、判定、描画の流れを説明できる
  • データと処理を役割ごとに分け、読みやすいプロジェクトを作れる
  • 配列、構造体、クラス、列挙型を使ってゲーム内オブジェクトを管理できる
  • 不具合を再現し、デバッグ表示やコード確認で原因を絞れる

配布ファイル

開始用プロジェクトと完成版プロジェクトは配布ファイルから確認できます。