第1章 概述
1.1 游戲簡史
1.2 游戲設計的要素
1.2.1 策劃
1.2.2 程序
1.2.3 美工
1.2.4 音效
1.3 DirectX簡介
1.3.1 DirectDraw
1.3.2 Direct3D
1.3.3 DirectSound
1.3.4 DirectMusic
1.3.5 Directlnput
1.3.6 DirecPlay
1.3.7 DirectSetup
1.4 玩者對象的考慮
1.4.1 學齡前(6歲以下)
1.4.2 小學早期階段(5—8歲)
1.4.3 小學階段(7—11歲)
1.4.4 青少年階段(12-16歲)
1.4.5 青年階段(16—24歲)
1.4.6 成人階段(22歲以上)
1.5 游戲的界面設計
1.6 人工智能
1.7 場景結構
1.7.1 場景的生成方式
1.7.2 地面描述數(shù)據(jù)
1.7.3 地形描述數(shù)據(jù)
1.7.4 地面對象描述數(shù)據(jù)
1.8 場景描述數(shù)據(jù)的生成
1.9 本章小結
第2章 游戲的WindOWS代碼
2.1 窗口與窗口類
2.1.1 注冊窗口類
2.1.2 Windows窗口的創(chuàng)建
2.2 消息機制
2.3 消息處理函數(shù)
2.4 代碼整理
2.4.1 定義CApplication類
2.4.2 初始化變量
2.4.3 創(chuàng)建應用程序窗口
2.4.4 主窗口的消息處理
2.4.5 默認的消息循環(huán)機制
2.5 具體應用
2.5.1 創(chuàng)建特定屬性的窗口
2.5.2 載入圖標和光標
2.5.3 使用菜單和對話框
2.6 本章小結
第3章 DirectDraw環(huán)境
3.1 基本概念
3.1.1 位圖
3.1.2 表面(Surface)
3.1.3 位塊
3.1.4 RGB值
3.2 使用DirectDraw的一般步驟
3.2.1 一般步驟
3.2.2 創(chuàng)建DirectDraw對象
3.2.3 設置協(xié)作等級
3.2.4 設置顯示模式
3.2.5 創(chuàng)建主表面
3.2.6 創(chuàng)建后臺翻轉表面
3.2.7 翻轉顯示(F1中)
3.2.8 代碼整理
3.3 高級DirectDraw
3.3.1 載入位圖到表面
3.3.2 表面間的位塊傳送(Bitblocktransfer)
3.3.3 不規(guī)則外形的圖像表示
3.3.4 裁剪器
3.3.5 設備性能查詢
3.3.6 添加功能
3.4 DirectDraw的具體應用
3.5 本章小結
第4章 DirectInput交互
4.1 建立DirectInput的一般步驟
4.2 建立DirectInput
4.2.1 創(chuàng)建DirectInput對象
4.2.2 創(chuàng)建輸入設備
4.2.3 設置數(shù)據(jù)格式
4.2.4 設置協(xié)作等級
4.2.5 設置緩沖數(shù)據(jù)方式的緩沖區(qū)大小
4.2.6 獲得設備的訪問權
4.3 檢索設備的數(shù)據(jù)
4.3.1 檢索立即數(shù)據(jù)
4.3.2 檢索緩沖數(shù)據(jù)
4.4 代碼整理
4.4.1 歸類
4.4.2 初始化和釋放資源
4.4.3 輸入設備的整體操作
4.4.4 初始化鍵盤設備
4.4.5 檢索鍵盤狀態(tài)
4.4.6 初始化鼠標設備
4.4.7 檢索鼠標狀態(tài)
4.4.8 輸入設備查詢
4.5 應用示例
4.6 本章小結
第5章 聲音的播放
5.1 預備知識
5.2 波形聲音文件(WAVE)
5.3 DirectSound的建立
5.3.1 DirectSound的初始化
5.3.2 創(chuàng)建次級緩沖區(qū)
5.4 建立CDSound類
5.5 DirectSound的使用
5.5.1 構造與析構
5.5.2 設置初始化屬性
5.5.3 DirectSound操作流程
5.5.4 載入波形文件數(shù)據(jù)
5.6 靜態(tài)緩沖區(qū)的相關操作
5.6.1 設置靜態(tài)緩沖區(qū)的個數(shù)
5.6.2 靜態(tài)緩沖區(qū)的鎖定、創(chuàng)建和釋放
5.6.3 靜態(tài)緩沖區(qū)的播放控制
5.6.4 靜態(tài)緩沖區(qū)的聲音屬性調節(jié)
5.6.5 獲取靜態(tài)緩沖區(qū)
5.7 流式緩沖區(qū)的相關操作
5.7.1 流式緩沖區(qū)的結構
5.7.2 設置流式緩沖區(qū)的個數(shù)
5.7.3 流式緩沖區(qū)的創(chuàng)建、清空和釋放
5.7.4 流式緩沖區(qū)的播放控制
5.7.5 調節(jié)整個流式數(shù)據(jù)的播放游標
5.7.6 設置流式緩沖區(qū)的音量
5.7.7 給流式緩沖區(qū)載入數(shù)據(jù)
5.8 應用示例
5.9 本章小結
第6章 基本框架
6.1 初步策劃
6.1.1 游戲劇情
6.1.2 游戲規(guī)則
6.1.3 怪物種類
6.1.4 角色的屬性
6.1.5 物品
6.1.6 地面類型及地面對象
6.1.7 戰(zhàn)斗系統(tǒng)
6.1.8 角色以及怪物的表現(xiàn)要求
6.1.9 游戲的表現(xiàn)角度
6.2 圖片的制作
6.3 角色動畫
6.3.1 動畫的表現(xiàn)
6.3.2 角色動畫演示
6.4 場景
6.4.1 表現(xiàn)場景
6.4.2 場景移動與轉換演示
6.5 立體效果
6.5.1 立體效果的表現(xiàn)
6.5.2 場景立體效果演示
6.6 本章小結
第7章 尋路算法
7.1 A-Star尋路算法
7.1.1 模仿人類的搜索
7.1.2 地形的表示
7.1.3 兩種搜索方式的模擬
7.2 生成算法
7.2.1 建立CGetPath類
7.2.2 輔助函數(shù)和初始化
7.2.3 求“八個方塊”
7.2.4 求“近”方塊
7.2.5 Bresenham算法
7.2.6 求路徑的末端
7.2.7 “步”的檢測
7.2.8 “步”的下移
7.2.9 路徑的樣式
7.2.10 刪除路徑
7.2.11 半吸附式搜索
7.2.12 吸附式搜索
7.2.13 吸附式和半吸附式的結合搜索
7.2.14 綜合尋路
7.3 尋路算法的使用
7.4 本章小結
第8章 生成游戲
8.1 文字顯示系統(tǒng)
8.1.1 獲得表面的設備內容
8.1.2 建立文字顯示類
8.1.3 使用CText類
8.2 定義游戲類
8.3 生成游戲
8.3.1 輔助成員
8.3.2 游戲的開始畫面
8.3.3 保存角色數(shù)據(jù)
8.3.4 載入角色數(shù)據(jù)
8.3.5 生成場景
8.3.6 刪除場景
8.3.7 恢復變量
8.3.8 場景轉換
8.3.9 升級系統(tǒng)
8.3.10 角色的行為
8.3.11 怪物的行為
8.3.12 顯示實體以及文字
8.3.13 游戲進程
8.3.14 獲取輸入設備狀態(tài)和更新屏幕
8.4 游戲演示
8.5 本章小結
第9章 地圖編輯器
9.1 編輯
9.2 定義編輯類CEdit
9.3 場景屬性描述的設置
9.4 地面的編輯
9.4.1 地面的構成方式
9.4.2 選擇編輯方塊
9.4.3 編輯地面
9.4.4 獲得地面方塊的源位置
9.5 對象的編輯
9.5.1 編輯對象
9.5.2 添加對象
9.5.3 刪除對象
9.6 編輯開關區(qū)域
9.7 編輯角色出現(xiàn)區(qū)域
9.8 數(shù)據(jù)的保存與載入
9.8.1 保存場景數(shù)據(jù)
9.8.2 載入場景數(shù)據(jù)
9.9 編輯器進程
9.10 生成編輯器
9.11 載入場景文件到游戲
9.12 本章小結