DirectX8による
2Dゲームプログラミング講座

〜DirectX Graphicsを使用した2Dゲーム製作〜

この授業で行うこと

  1. ゲーム制作工程のうち、プログラミングを中心にゲーム製作を行う基本技術を身に付ける。
  2. 学んだ知識を生かして「ミニゲーム制作」を行う。

DirectX8 日本語Help Download

バグ情報

  1. フルスクリーン・モードの時、フォントオブジェクトを使用している画面は、ウィンドウを復帰させても画面が表示されなくなる。
  2. DirectShowによるムービー再生において、スタート画面から一定時間経過後デモムービーを流そうとすると、ムービー画面が表示されたり表示されなかったりする。

補足

  1. DirectX9のSDKを使っている場合、コンパイル時に「コンパイラは'libci.lib'を開く事ができません。」というエラーが出ることがある。その場合、「プロジェクト」→「プロパティ」→「コマンドライン」「追加のオプション」のところに「/nodefaultlib:libci」 を追加するとエラーが出なくなる。(TAKAさんに教えて頂きました。多謝)

DirectX Graphics

第1章 基礎知識

  1. DirectXの概要
  2. 画像データ処理の基礎知識
  3. ゲーム製作におけるビデオメモリの使い方
  4. DirectX Graphicsについて

第2章 スケルトンプログラムへDirectX Graphicsを組み込む

  1. 【復習】アプリケーションの初期化とウィンドウの生成
  2. フルスクリーン・モード用のウィンドウを生成する
  3. ウィンドウ・モード用のウィンドウを生成する
  4. ウィンドウモードを切り替える
  5. DirectX Graphicsプログラミングの基礎
  6. スケルトンプログラムへの組み込み
  7. ビルドの準備

第3章 ゲーム用にプログラムを改造する

  1. 一般的なゲームプログラムの構造とプログラム
  2. ゲームメイン処理
  3. キーボードの状態取得(API)
  4. 状態別処理の考え方とプログラム
  5. 練習問題

第4章 DirectX Graphicsでの2D表示

  1. 描画処理の基礎
  2. ポリゴンについて
  3. ポリゴンの描画(三角形)
  4. ポリゴンの描画(四角形)
  5. 頂点情報初期化関数について
  6. 画像の描画(テクスチャ・マッピング)
  7. 複数のキャラクタを表示する
  8. 1つの画像ファイルに複数の画像を載せるには?
  9. テクスチャサイズの最大(参考)
  10. 練習問題

第5章 テクスチャに効果を付ける

  1. 透過表示
  2. 半透明表示
  3. 加算合成

第6章 キャラクタの移動と当たり判定

  1. 移動処理
  2. 画面からはみ出さないようにするには?
  3. キャラクタ同士の衝突を調べるには?
  4. 当たり判定を小さくするには?
  5. 練習問題

第7章 ゲームを作りやすいプログラム

  1. ソース分割の考え方
  2. DirectX Graphics処理の分割
  3. スタート処理の分割
  4. ゲーム処理の分割
  5. 共通ヘッダファイルの作成
  6. 開放処理のテクニック
  7. 練習問題

第8章 時間制御

  1. 時間の考え方
  2. FPSの表示
  3. 取得した時間を他のソースから利用する
  4. 一定時間経過したら、デモが流れる
  5. スタートボタンを押してから一定時間経過後、ゲームが開始する
  6. カーソルの移動制御(メニューの選択)
  7. 練習問題

第9章 キャラクタを効率よく制御する

  1. キャラクタ構造体とは
  2. キャラクタ用構造体変数の作り方と使い方
  3. 敵キャラを簡単に増加させる
  4. キャラクタ構造体を使うメリットを考える
  5. 練習問題

第10章 複数のキャラクタを制御する

  1. 一定時間ごとに敵キャラを発生させるサンプル
  2. 敵キャラの移動パターンを増やす
  3. 敵キャラの出現パターンを作る
  4. タイプ別に初期化データを変える
  5. タイプ別にキャラクタ画像を変える
  6. 自キャラから弾を出す
  7. 敵キャラから弾を出す
  8. キャラ別移動処理に関数ポインタを使う(参考)
  9. リスト構造によるキャラクタ管理(参考)
  10. 練習問題

第11章 テクスチャ表示のテクニック

  1. 移動方向によって表示する画像を変える
  2. テクスチャ・アニメーション
  3. フォント・オブジェクト
  4. 数字を画像で用意し、描画する
  5. ASCII文字を画像で用意し、描画する

第12章 ポリゴンを行列で管理する

  1. 行列を用いた移動
  2. 拡大・縮小
  3. 回転

まとめ

  1. 基本プログラム(WinMain、NKC_Common、NKC_Public、NKC_DGraphics)
    1〜12章までの内容をすべて盛り込んだもの。最終更新日:2005/2/12
  2. 確認問題

応用技術

背景処理

  1. 星を降らせて擬似スクロール
  2. 一枚絵を背景にしてスクロール
  3. マップチップを背景にしてスクロール

マップチップを使ったキャラクタの移動

  1. 自キャラの制御
  2. 敵キャラの制御
  3. アイテムの配置
  4. 敵キャラの制御2

サイドビューのアクションゲーム

  1. 自キャラの動き方
  2. 敵キャラの制御
  3. 障害物の配置と当たり判定

その他の技術

DirectAudio

  1. DirectX Audioについて
  2. NKC_DAudio.cppファイルの組み込み
  3. 基本的な使い方
  4. ボリューム・コントロール

DirectInput

  1. DirectInputについて
  2. NKC_DInput.cppファイルの組み込み
  3. キーボードの状態を取得する
  4. ジョイパッドの状態を取得する
  5. マウスの状態を取得する
  6. 複数のジョイパッドを制御する

DirectInput(アクション・マッピング使用)

  1. アクション・マッピングについて
  2. NKC_DInput_AM.cppファイルの組み込み
  3. 使い方
  4. 複数のジョイパッドを制御する

DirectShow

  1. DirectShowについて
  2. NKC_DShow.cppファイルの組み込み
  3. ロゴムービーが流れてからスタート画面を表示させるには?
  4. 一定時間経過したらデモムービーを流すには?

組み込みソースへのリンク

  1. フォントオブジェクト組み込み用ソース(NKC_Font)
  2. DirectAudio組み込み用ソース(NKC_DAudio)
  3. DirectInput組み込み用ソース(NKC_DInput)
  4. DirectShow組み込み用ソース(NKC_DShow)