DirectX 5ゲームプログラミング入門

DirectX 5ゲームプログラミング入門

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ B5判/ページ数 524p/高さ 24cm
  • 商品コード 9784844348641
  • NDC分類 007.64
  • Cコード C3055

出版社内容情報

新標準[Windows 98/DirectX 5]を丸のみ!
これでゲーム開発なんてへっちゃらだ!

最新バージョンのDirectX 5に対応した、開発者向けプログラミング入門書。DirectDrawを中心に、Win32の基本テクニックやゲーム開発
の基本事項などを丁寧に解説します。最終的には、DirectXを組み合わせた簡単な3Dダンジョンゲームを作成できます。付属CD-ROM
には、本文中で使用した全てのプログラムのソースコードと画像ファイルに加え、最新バージョンのDirectX SDKを収録!


目次

 謝辞 II
 監訳者まえがき III
 著者/監訳者紹介 IV
 はじめに V
 付属CD-ROMについて XI

第1章 ゲームプログラミングの基礎 1
 1.1 グラフィックスの基礎 1
  1.1.1 ピクセル 1
  1.1.2 スクリーン座標 2
  1.1.3 画面の解像度 3
  1.1.4 色数 4
  1.1.5 パレット 5
  1.1.6 ビデオモード 6
 1.2 ビデオカード 6
  1.2.1 ビデオメモリ 7
  1.2.2 ビットマップ 9
 1.3 COM 10
  1.3.1 C言語でのCOMオブジェクトの使用 10
  1.3.2 DirectXマクロ 11
  1.3.3 #define文によるポインタ型の定義 11
  1.3.4 COMオブジェクトの解放 11
 1.4 DirectXによるプログラミング 12
  1.4.1 ヘッダーファイル 12
  1.4.2 ライブラリファイル 12
  1.4.3 コンパイラ 13
 1.5 まとめ 13

第2章 DirectDraw 15
 2.1 DirectDrawの機能 16
  2.1.1 DirectDrawのアーキテクチャ 17
 2.2 例2-1:Windowsアプリケーションの基本 19
  2.2.1 WinMain() 21
  2.2.2 Windowsのメッセージ 24
  2.2.3 メッセージループ 25
  2.2.4 WinInit() 26
 2.3 DirectDrawの基本 33
  2.3.1 DrawInit() 33
 2.4 サーフェイス 45
  2.4.1 サーフェイスの作成 46
  2.4.2 プライマリサーフェイス 49
  2.4.3 DDCreateSurfaces() 51
  2.4.4 DDEnable() 53
 2.5 コールバック関数 57
  2.5.1 WM_SIZEとWM_MOVE 58
  2.5.2 WM_KEYDOWN 59
  2.5.3 WM_PAINT 60
  2.5.4 WM_DESTROY 63
  2.5.5 DefWindowProc() 64
 2.6 レンダリング 64
  2.6.1 RenderInit() 65
  2.6.2 Render() 68
 2.7 例2-1のコンパイル 73
 2.8 例2-2:拡張 74
 2.9 タイマー 74
  2.9.1 タイマーの設定 75
  2.9.2 タイマーの使い方 77
 2.10 複合サーフェイス 78
  2.10.1 フリッピング 79
  2.10.2 複合サーフェイスの作成 80
 2.11 サーフェイスの作成 83
  2.11.1 バックバッファの取得 85
 2.12 レンダリング 87
  2.12.1 RenderInit() 87
  2.12.2 RenderNextFrame() 88
 2.13 複合サーフェイスのフリッピング 90
  2.13.1 IDirectDrawSurfaceのインターフェイスFlip()の使い方 90
  2.13.2 DDFlip() 91
 2.14 例2-2のコンパイル 92
 2.15 まとめ 92

第3章 続 DirectDraw 93
 3.1 例3-1:ウィンドウモードの追加 93
 3.2 コールバック関数 95
  3.2.1 WM_TIMER 99
  3.2.2 WM_SIZE 99
  3.2.3 WM_ENTERMENULOOP 102
  3.2.4 WM_NCHITTEST 103
  3.2.5 WM_MOVING 104
  3.2.6 WM_NCLBUTTONUP、WM_LBUTTONUP、WM_NCLBUTTONDOWN、WM_LBUTTONDOWN、WM_EXITSIZEMOVE 105
  3.2.7 WM_COMMAND 106
  3.2.8 WM_SYSKEYUP 106
 3.3 DDEnable() 108
 3.4 クリッパ 112
 3.5 サーフェイスの作成 114
  3.5.1 DirectDrawClipperオブジェクトの作成 117
  3.5.2 DirectDrawClipperオブジェクトの関連付け 118
 3.6 レンダリング 119
  3.6.1 DDFlip() 120
 3.7 例3-1のコンパイル 121
 3.8 例3-2:ディスプレイモード 121
  3.8.1 WinMain() 121
  3.8.2 BuildModesMenu() 122
  3.8.3 EnumDisplayModes() 126
  3.8.4 DDGetDisplayModesCount() 127
  3.8.5 DDGetDisplayMode() 129
 3.9 コールバック関数 131
  3.9.1 WM_COMMAND 134
  3.9.2 WM_SYSKEYUP 136
 3.10 ModeX 137
 3.11 レンダリング 138
  3.11.1 RenderInit() 138
  3.11.2 DDFlip() 139
 3.12 例3-2のコンパイル 140
 3.13 まとめ 140

第4章 パレット 141
 4.1 例4-1:最初のパレットの例 141
  4.1.1 非パレットモードでの実行 141
  4.1.2 パレットクラス 146
  4.1.3 CDDPalette::CreatePalette() 148
  4.1.4 オーバーロードバージョンのCDDPalette::CreatePalette() 150
  4.1.5 CDDPalette::GetDDPalette() 156
  4.1.6 CDDPalette::FadeEntries() 156
 4.2 レンダリング 160
  4.2.1 RenderInit() 160
  4.2.2 RenderNextFrame() 162
  4.2.3 FillBufferRect() 163
 4.3 垂直帰線消去 164
  4.3.1 WindowProc() 164
  4.3.2 DDFlip() 165
 4.4 コールバック関数 166
 4.5 例4-1のコンパイル 167
 4.6 例4-2:パレットアニメーション 167
 4.7 レンダリング 168
  4.7.1 サーフェイスメモリへのアクセス 168
  4.7.2 RenderInit() 169
  4.7.3 RenderNextFrame() 176
  4.7.4 PaintFrame() 177
 4.8 例4-2のコンパイル 178
 4.9 まとめ 178

第5章 ビットマップ 179
 5.1 例5-1:ビットマップ 179
  5.1.1 ビットマップファイルの形式 179
 5.2 CDDDibクラス 182
  5.2.1 CDDDib::CDDDib() 183
  5.2.2 もう1つのCDDDib::CDDDib() 184
  5.2.3 CDDDib::LoadFile() 184
  5.2.4 CDDDib::GetPaletteEntries() 189
  5.2.5 CDDDib::RowWidth() 190
 5.3 レンダリング 190
  5.3.1 RenderInit() 190
  5.3.2 RenderNextFrame() 196
 5.4 例5-1のコンパイル 196
 5.5 まとめ 196

第6章 スプライト 197
 6.1 スプライトの仕組み 197
  6.1.1 移動 198
 6.2 例6-1:カラーキーイング 198
 6.3 最初のスプライトクラス 201
  6.3.1 CDDSprite::CDDSprite() 202
  6.3.2 CDDSprite::‾CDDSprite() 205
  6.3.3 CDDSprite::Render() 205
 6.4 レンダリング 207
  6.4.1 RenderInit() 207
  6.4.2 RenderNextFrame() 208
 6.5 例6-1のコンパイル 209
 6.6 例6-2:アニメーションの追加 210
 6.7 アニメーション機能を追加したスプライトクラス 211
  6.7.1 CDDSprite::CDDSprite() 213
  6.7.2 CDDSprite::Render() 215
  6.7.3 CDDSprite::AddFrame() 215
  6.7.4 CDDSprite::SetFrame() 218
 6.8 レンダリング 220
  6.8.1 RenderInit() 220
  6.8.2 RenderNextFrame() 222
 6.9 例6-2のコンパイル 224
 6.10 例6-3:スプライトエンジンの改良 224
 6.11 自己追跡型スプライトクラス 225
  6.11.1 CDDSprite::CDDSprite() 227
  6.11.2 CDDSprite::AddFrame() 227
  6.11.3 CDDSprite::SetFrameRange() 227
  6.11.4 CDDSprite::AdvanceFrame() 228
  6.11.5 CDDSprite::Move() 230
  6.11.6 そのほかのCDDSpriteメンバ関数 230
 6.12 レンダリング 230
  6.12.1 RenderInit() 231
  6.12.2 RenderNextFrame() 233
 6.13 例6-3のコンパイル 235
 6.14 例6-4:スプライトエンジンの高速化 235
 6.15 高精度なタイマー 235
  6.15.1 タイマーの精度の取得 236
  6.15.2 タイマーの精度の設定 236
  6.15.3 タイマーコールバック関数 236
 6.16 高精度なタイマーの追加 237
  6.16.1 StopTimer() 239
  6.16.2 TimerFunc() 240
  6.16.3 ウィンドウコールバック関数 241
 6.17 更新すべき矩形を計算する手法 243
  6.17.1 更新すべき矩形のインプリメント 244
  6.17.2 CDDSprite::Move() 245
 6.18 レンダリング 247
  6.18.1 RenderInit() 248
  6.18.2 RenderNextFrame() 251
  6.18.3 PaintFrame() 257
  6.18.4 フルスクリーン描画を切り換えるメニューの追加 257
 6.19 例6-4のコンパイル 258
 6.20 例6-5:ミサイルの追加 258
 6.21 自立アニメーション型スプライトクラス 259
  6.21.1 CDDSprite::SetFrameRate() 261
  6.21.2 CDDSprite::SetSpeed() 262
  6.21.3 CDDSprite::Tick() 262
 6.22 レンダリング 265
  6.22.1 RenderInit() 265
  6.22.2 RenderNextFrame() 268
 6.23 例6-5のコンパイル 272
 6.24 例6-6:衝突の検出 272
 6.25 衝突を検出するスプライトクラス 273
  6.25.1 CDDSprite::CollisionTest() 273
  6.25.2 CDDSprite::GetRegion() 274
 6.26 レンダリング 275
  6.26.1 RenderInit() 275
  6.26.2 RenderNextFrame() 278
 6.27 例6-6のコンパイル 282
 6.28 まとめ 282

第7章 DirectInput 283
 7.1 例7-1:ジョイスティック 284
 7.2 API 285
  7.2.1 JOYCAPS構造体 285
  7.2.2 JOYINFOEX構造体 286
 7.3 DirectInputのインプリメント 286
  7.3.1 JoystickInit() 286
  7.3.2 コールバック関数 290
 7.4 レンダリング 291
  7.4.1 動きの検出 291
  7.4.2 ジョイスティックの座標系 292
  7.4.3 RenderInit() 292
  7.4.4 JoyCheck() 293
 7.5 例7-1のコンパイル 295
 7.6 まとめ 295

第8章 DirectDrawの高度な応用 297
 8.1 例8-1:スクロール 297
  8.1.1 スプライトクラスの再利用 298
  8.1.2 CDDSprite::CalcRects() 298
  8.1.3 CDDSprite::Render() 300
  8.1.4 CDDSprite::Move() 301
 8.2 レンダリング 303
  8.2.1 RenderInit() 303
  8.2.2 RenderNextFrame() 303
  8.2.3 JoyCheck() 304
 8.3 例8-1のコンパイル 305
 8.4 例8-2:複数のスクロールするレイヤーの追加 305
  8.4.1 スプライトの初期化 306
  8.4.2 レンダリング 306
  8.4.3 JoyCheck() 307
 8.5 例8-2のコンパイル 307
 8.6 まとめ 307

第9章 Direct3Dの基礎 309
 9.1 3Dグラフィックスの基礎 310
  9.1.1 3Dの座標系 310
  9.1.2 ポリゴンとオブジェクト 310
  9.1.3 変換 311
  9.1.4 レンダリング 312
 9.2 Direct3Dでのハードウェアの使用 313
  9.2.1 Direct3D HALとHEL 314
 9.3 直接モードと保持モード 314
 9.4 レンダリングパイプライン 315
  9.4.1 変換モジュール 315
  9.4.2 照明モジュール 316
  9.4.3 レンダリングモジュール 316
 9.5 Direct3Dの世界の構築ブロック 316
  9.5.1 Direct3Dオブジェクト 316
  9.5.2 Direct3Dデバイス 317
  9.5.3 フレーム 317
  9.5.4 ビューポート 319
 9.6 例9-1:ワイヤーフレームモデルの描画 320
  9.6.1 例9-1の初期化 320
  9.6.2 シーンの構築 327
  9.6.3 WndProc():ウィンドウコールバック関数 335
  9.6.4 例9-1のコンパイル 344
 9.7 例9-2:塗りつぶしたポリゴン 344
  9.7.1 SetRenderingOptions() 345
  9.7.2 BuildScene() 346
  9.7.3 例9-2のコンパイル 347
 9.8 例9-3:照明 347
  9.8.1 法線 347
  9.8.2 照明 348
  9.8.3 SetRenderingOptions() 349
  9.8.4 BuildScene() 352
  9.8.5 ウィンドウプロシージャ 354
  9.8.6 例9-3のコンパイル 354
 9.9 例9-4:テクスチャマッピングの追加 355
  9.9.1 テクスチャ座標 356
  9.9.2 SetRenderingOptions() 356
  9.9.3 BuildScene() 357
  9.9.4 例9-4のコンパイル 360
 9.10 まとめ 360

第10章 PCのサウンド機能 361
 10.1 サウンド機能の基礎 361
 10.2 音のデジタル化 363
 10.3 サウンドのミキシング 365
  10.3.1 DOSとWindows 3.1での処理 365
  10.3.2 Windows 95での処理 367
 10.4 サウンドファイル 367
 10.5 DirectSoundの概要 368
 10.6 まとめ 369

第11章 DirectSound 371
 11.1 DirectSoundのアーキテクチャ 371
 11.2 DirectSound API 374
  11.2.1 DSOUND.DLLからエクスポートされる関数 374
  11.2.2 DirectSoundバッファ 375
  11.2.3 IDirectSoundインターフェイス 376
  11.2.4 IDirectSoundBufferインターフェイス 379
 11.3 MMIO関数 381
 11.4 DIRSOUNDクラス 383
  11.4.1 DIRSOUNDクラスが実行すること 383
  11.4.2 DIRSOUNDのインプリメント 384
 11.5 3Dサウンドと定位 391
  11.5.1 理論 392
  11.5.2 DirectSound3D API 394
 11.6 まとめ 396

第12章 DirectPlay 397
 12.1 なぜDirectPlayなのか 397
 12.2 基本的なDirectPlayモデル 398
 12.3 DirectPlay APIの概要 400
  12.3.1 エクスポートされる関数 400
  12.3.2 主なメンバ関数 401
 12.4 目標 406
 12.5 コード 406
 12.6 ロビー 417
  12.6.1 ゲームプログラム 417
  12.6.2 ロビープログラム 418
 12.7 まとめ 419

第13章 人工知能 421
 13.1 プレーヤーの監視 422
  13.1.1 プレーヤーの追跡 422
  13.1.2 プレーヤーの回避 424
 13.2 ちょっとした無秩序の追加 425
 13.3 チームワーク 426
  13.3.1 収束 427
  13.3.2 発散 427
 13.4 パターン 428
 13.5 状態 429
  13.5.1 確率を使った状態の選択 430
 13.6 視覚 431
 13.7 まとめ 434

第14章 ゲームの配布 435
 14.1 インストールプログラム 435
  14.1.1 DirectXのインストール 436
  14.1.2 DirectSetup 436
  14.1.3 DirectXSetup() 437
 14.2 AutoPlay 440
  14.2.1 AUTOPLAY.INF 441
 14.3 オンラインヘルプ 443
 14.4 ゲームの配布 444
  14.4.1 シェアウェア 444
  14.4.2 市販のルート 446
 14.5 まとめ 448

第15章 総まとめ 449
 15.1 まず最初に 450
 15.2 ウィンドウコールバック関数 451
 15.3 WM_CREATEメッセージハンドラ 456
  15.3.1 SetupDirect3DRetainedMode() 457
  15.3.2 CreateDeviceAndViewport() 462
  15.3.3 BuildScene() 464
  15.3.4 SetupNavigator() 476
 15.4 WM_PAINTメッセージハンドラ 477
 15.5 WM_ACTIVATEメッセージハンドラ 479
 15.6 ユーザーとの対話 480
  15.6.1 Move() 480
  15.6.2 StepForward() 484
  15.6.3 StepBackward() 485
 15.7 回転関数 486
  15.7.1 TurnLeft() 486
  15.7.2 TurnRight() 487
 15.8 WM_KEYDOWNメッセージハンドラ 487
 15.9 WM_TIMERハンドラ 490
 15.10 MM_MCINOTIFYメッセージハンドラ 491
 15.11 WM_DESTROYメッセージハンドラ 492
 15.12 まとめ 492

付録A DirectX 5の新機能 493
付録B DirectXが使用できるデバイスの調べ方 497
索引 505
DirectX 5 Software Development Kitの使用許諾について


ページイメージ

内容説明

DirectX 5の最新情報を盛り込みながら、DirectXを使ったゲーム開発のノウハウを解説した入門書!高速描画用のDirectDraw、入力用のDirectInput、ポリゴン描画のDirect3D、サウンド用のDirectSound、通信対戦用のDirectPlayなどDirectXの各APIを具体的な実例を元にコードを示しながら詳しく解説しています。Win32の基本テクニックやゲーム開発の基本事項などが理解できます。最終的にはDirectXを組み合わせた簡単な3Dダンジョンゲームの作成方法を学ぶことができます。

目次

ゲームプログラミングの基礎
DirectDraw
続DirectDraw
パレット
ビットマップ
スプライト
DirectInput
DirectDrawの高度な応用
Direct3Dの基礎
PCサウンド機能〔ほか〕

最近チェックした商品