出版時(shí)間:2012-11 出版社:人民郵電出版社 作者:拉莫斯 頁(yè)數(shù):734 字?jǐn)?shù):1362000 譯者:沙鷹
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《Windows游戲編程大師技巧(第2版)》是著名游戲程序設(shè)計(jì)大師André
LaMothe的代表作?! ∪珪?shū)分為4個(gè)部分,共計(jì)15章和6個(gè)附錄。作者循循善誘地從程序設(shè)計(jì)的角度介紹了在Windows環(huán)境下進(jìn)行游戲開(kāi)發(fā)所需的全部知識(shí),包括Win32編程以及DirectX中所有主要組件(包括DirectDraw、DirectSound、DirectInput和DirectMusic)。書(shū)中還用單獨(dú)的章節(jié)詳細(xì)講授了2D圖形學(xué)和光柵化技術(shù)、游戲算法、多線程編程、文本游戲和解析、人工智能(包括模糊邏輯、神經(jīng)網(wǎng)絡(luò)和遺傳算法)、物理建模(完全碰撞反應(yīng)、動(dòng)量傳遞和正反向運(yùn)動(dòng)學(xué))及實(shí)時(shí)模擬等游戲程序開(kāi)發(fā)中的關(guān)鍵技術(shù)。附錄部分介紹了本書(shū)光盤(pán)的內(nèi)容,如何安裝DirectX,回顧了數(shù)學(xué)和三角學(xué)的基礎(chǔ)知識(shí)、C++編程的基礎(chǔ)知識(shí),還給出了游戲編程資源以及ASCII表?! 禬indows游戲編程大師技巧(第2版)》所附光盤(pán)上帶有本書(shū)中所有程序的源代碼、關(guān)于Direct3D和General
3D的文章和在線書(shū)籍以及眾多免費(fèi)的素材。 《Windows游戲編程大師技巧(第2版)》適合想要學(xué)習(xí)Windows游戲編程的人員閱讀,對(duì)于有一定經(jīng)驗(yàn)的專業(yè)游戲開(kāi)發(fā)人員,也具有較高的參考價(jià)值。
作者簡(jiǎn)介
本書(shū)作者Andre
LaMothe有25年的計(jì)算行業(yè)從業(yè)經(jīng)驗(yàn),擁有數(shù)學(xué)、計(jì)算機(jī)科學(xué)和電子工程等學(xué)位,是20歲時(shí)就在NASA做研究工作的少數(shù)幾人之一。作者的著作以及參與策劃的套系,都成為游戲設(shè)計(jì)和開(kāi)發(fā)領(lǐng)域的經(jīng)典。
書(shū)籍目錄
第一部分 Windows編程基礎(chǔ)
第1章 學(xué)海無(wú)涯
1.1 歷史一瞥
1.2 設(shè)計(jì)游戲
1.3 游戲類型
1.4 集思廣益
1.5 設(shè)計(jì)文檔和情節(jié)串聯(lián)圖板
1.6 使游戲具有趣味性
1.7 游戲的構(gòu)成
1.8 常規(guī)游戲編程指導(dǎo)規(guī)范
1.9 使用工具
1.10 從準(zhǔn)備到完成——使用編譯器
1.11 示例:FreakOut
1.12 小結(jié)
第2章 Windows編程模型
2.1 Windows的起源
2.1.1 早期版本的Windows
2.1.2 Windows 3.x
2.1.3 Windows 95
2.1.4 Windows 98
2.1.5 Windows ME
2.1.6 Windows XP
2.1.7 Windows NT/2000
2.1.8 Windows 基本架構(gòu):Win9X/NT
2.2 多任務(wù)和多線程
2.2.1 獲取線程的信息
2.2.2 事件模型
2.3 按照微軟風(fēng)格編程:匈牙利符號(hào)表示法
2.3.1 變量的命名
2.3.2 函數(shù)的命名
2.3.3 類型和常量的命名
2.3.4 類的命名
2.3.5 參數(shù)的命名
2.4 世界上最簡(jiǎn)單的Windows程序
2.4.1 總是從WinMain()開(kāi)始
2.4.2 程序剖析
2.4.3 選擇一個(gè)信息框
2.5 現(xiàn)實(shí)中的Windows應(yīng)用程序
2.6 Windows類
2.7 注冊(cè)Windows類
2.8 創(chuàng)建窗口
2.9 事件處理程序
2.10 主事件循環(huán)
2.11 產(chǎn)生一個(gè)實(shí)時(shí)事件循環(huán)
2.12 打開(kāi)多個(gè)窗口
2.13 小結(jié)
第3章 高級(jí)Windows編程
3.1 使用資源
3.1.1 整合資源
3.1.2 使用圖標(biāo)資源
3.1.3 使用光標(biāo)資源
3.1.4 創(chuàng)建字符串表資源
3.1.5 使用.WAV聲音資源
3.1.6 使用編譯器創(chuàng)建.RC文件
3.2 使用菜單
3.2.1 創(chuàng)建菜單
3.2.2 裝載菜單
3.2.3 響應(yīng)菜單事件消息
3.3 GDI(圖形設(shè)備接口)簡(jiǎn)介
3.3.1 重拾WM_PAINT信息
3.3.2 視頻顯示基礎(chǔ)和色彩(Video Display Basics and Color)
3.3.3 RGB和調(diào)色板模式
3.3.4 基本文本顯示
3.4 處理重要事件
3.4.1 Windows操作
3.4.2 處理鍵盤(pán)事件
3.4.3 處理鼠標(biāo)事件
3.5 自行發(fā)送消息
3.6 小結(jié)
第4章 Windows GDI、控件和靈感
4.1 高級(jí)GDI繪圖
4.1.1 掀開(kāi)圖形設(shè)備描述表的蓋頭來(lái)
4.1.2 顏色、畫(huà)筆和畫(huà)刷
4.1.3 使用畫(huà)筆
4.1.4 使用畫(huà)刷
4.2 點(diǎn)、線、平面多邊形和圓
4.2.1 繪制點(diǎn)
4.2.2 繪制線段
4.2.3 繪制矩形
4.2.4 繪制圓
4.2.5 繪制多邊形
4.3 深入文本和字體
4.4 定時(shí)高于一切
4.4.1 WM_TIMER消息
4.4.2 低層定時(shí)操作
4.5 使用控件
4.5.1 按鈕
4.5.2 向子控件發(fā)送消息
4.6 獲取信息
4.7 T3D游戲控制臺(tái)程序
4.8 小結(jié)
第二部分 DirectX和2D基礎(chǔ)
第5章 DirectX基礎(chǔ)知識(shí)和令人生畏的COM
5.1 DirectX基礎(chǔ)
5.1.1 HEL和HAL
5.1.2 更多的DirectX基礎(chǔ)類
5.2 COM:是微軟的杰作,還是魔鬼的杰作
5.2.1 COM對(duì)象究竟是什么
5.2.2 接口標(biāo)識(shí)符和GUID的詳細(xì)內(nèi)容
5.2.3 創(chuàng)建一個(gè)類COM對(duì)象
5.2.4 COM的簡(jiǎn)要回顧
5.2.5 可運(yùn)行的COM程序
5.3 應(yīng)用DirectX COM對(duì)象
5.3.1 COM和函數(shù)指針
5.3.2 創(chuàng)建和使用DirectX界面
5.3.3 接口查詢
5.4 COM的前景
5.5 小結(jié)
第6章 初次邂逅DirectDraw
6.1 DirectDraw的接口
6.1.1 接口的特性
6.1.2 組合使用接口
6.2 創(chuàng)建DirectDraw對(duì)象
6.2.1 對(duì)DirectDraw進(jìn)行錯(cuò)誤處理
6.2.2 順便提一下接口
6.3 與Windows協(xié)作
6.4 設(shè)置模式
6.5 色彩的奧秘
6.6 創(chuàng)建顯示表面
6.6.1 創(chuàng)建一個(gè)主顯示表面
6.6.2 關(guān)聯(lián)調(diào)色板
6.6.3 繪制像素
6.6.4 清理資源
6.7 小結(jié)
第7章 高級(jí)DirectDraw和位圖圖形
7.1 使用高彩模式
7.1.1 16位高彩模式
7.1.2 獲取像素格式
7.1.3 24/32位真彩色模式
7.2 雙緩沖
7.3 表面動(dòng)態(tài)
7.4 頁(yè)面切換
7.5 顯存塊移動(dòng)單元(Blitter)
7.5.1 使用Blitter進(jìn)行內(nèi)存填充
7.5.2 從一個(gè)表面向另一個(gè)表面復(fù)制位圖
7.6 基礎(chǔ)裁剪知識(shí)
7.6.1 將像素按視口裁剪
7.6.2 位圖裁剪技巧
7.6.3 使用IDirectDrawClipper進(jìn)行DirectDraw裁剪
7.7 使用位圖
7.7.1 載入.BMP文件
7.7.2 使用位圖
7.7.3 載入8位位圖
7.7.4 載入16位位圖
7.7.5 載入24位位圖
7.7.6 總結(jié)位圖
7.8 離屏表面
7.8.1 創(chuàng)建離屏表面
7.8.2 在離屏表面上進(jìn)行Blitting
7.8.3 設(shè)置Blitter
7.8.4 色彩鍵
7.8.5 源色彩鍵
7.8.6 目標(biāo)色彩鍵
7.8.7 使用Blitter(終于!)
7.9 位圖的旋轉(zhuǎn)和縮放
7.10 離散采樣理論
7.11 色彩效果
7.11.1 256色模式下的色彩動(dòng)畫(huà)
7.11.2 256色模式下的色彩旋轉(zhuǎn)
7.11.3 使用RGB模式的技巧
7.12 手動(dòng)色彩變換及查詢表
7.13 新的DirectX色彩和Gamma控制接口
7.14 將GDI和DirectX聯(lián)用
7.15 DirectDraw的廬山真面目
7.15.1 主DirectDraw對(duì)象
7.15.2 關(guān)于表面
7.15.3 使用調(diào)色板
7.16 在窗口模式下使用DirectDraw
7.17 小結(jié)
第8章 矢量光柵化及2D變換
8.1 繪制線條
8.1.1 Bresenham算法
8.1.2 算法的速度優(yōu)化
8.2 基本2D圖形裁剪
8.2.1 利用點(diǎn)斜式計(jì)算兩條直線的交點(diǎn)
8.2.2 利用一般式計(jì)算兩條直線的交點(diǎn)
8.2.3 利用矩陣式計(jì)算兩條直線的交點(diǎn)
8.2.4 裁剪直線
8.2.5 Cohen-Sutherland算法
8.3 線框多邊形
8.3.1 多邊形數(shù)據(jù)結(jié)構(gòu)
8.3.2 多邊形的繪制及裁剪
8.4 2D平面里的變換
8.4.1 平移
8.4.2 旋轉(zhuǎn)
8.4.3 縮放
8.5 矩陣引論
8.5.1 單位矩陣
8.5.2 矩陣加法
8.5.3 矩陣乘法
8.5.4 使用矩陣進(jìn)行變換
8.6 平移
8.7 縮放
8.8 旋轉(zhuǎn)
8.9 填充實(shí)心多邊形
8.9.1 三角形和四邊形類型
8.9.2 繪制三角形和四邊形
8.9.3 三角形解構(gòu)詳述
8.9.4 四邊形光柵化的一般性討論
8.9.5 多邊形的三角化
8.10 多邊形碰撞檢測(cè)
8.10.1 接近度、邊界球/圓
8.10.2 邊界盒
8.10.3 點(diǎn)包含
8.11 深入定時(shí)和同步
8.12 卷軸和搖鏡頭
8.12.1 頁(yè)面卷軸引擎
8.12.2 均勻平鋪(Tile)顯示引擎
8.12.3 稀疏位圖平鋪顯示引擎
8.13 偽3D等軸測(cè)引擎
8.13.1 方法1:基于單元,全二維
8.13.2 方法2:基于全屏,具有一些二維或三維的碰撞網(wǎng)絡(luò)
8.13.3 方法3:采用全三維數(shù)學(xué)運(yùn)算,使用一個(gè)固定的相機(jī)視角
8.14 T3DLIB1函數(shù)庫(kù)
8.14.1 引擎架構(gòu)
8.14.2 新的游戲編程控制臺(tái)程序
8.14.3 基本定義
8.14.4 可用的宏
8.14.5 數(shù)據(jù)類型和結(jié)構(gòu)
8.14.6 全局定義
8.14.7 DirectDraw接口
8.14.8 2D多邊形函數(shù)
8.14.9 2D基本圖元函數(shù)
8.14.10 數(shù)學(xué)和誤差函數(shù)
8.14.11 位圖函數(shù)
8.14.12 調(diào)色板函數(shù)
8.14.13 實(shí)用工具函數(shù)
8.15 BOB引擎
8.16 小結(jié)
第9章 DirectInput輸入和力反饋
9.1 輸入循環(huán)
9.2 DirectInput序曲
9.2.1 DirectInput組件
9.2.2 設(shè)置DirectInput的一般步驟
9.2.3 數(shù)據(jù)采集模式
9.2.4 創(chuàng)建主DirectInput對(duì)象
9.2.5 101鍵盤(pán)
9.2.6 讀數(shù)據(jù)過(guò)程中的問(wèn)題:重獲取
9.2.7 捕捉鼠標(biāo)
9.2.8 使用游戲桿
9.2.9 將輸入消息化
9.3 力反饋
9.3.1 力反饋的物理原理
9.3.2 設(shè)置力反饋
9.3.3 力反饋演示程序
9.4 編寫(xiě)一個(gè)廣泛適用的輸入系統(tǒng):T3DLIB2.CPP
9.5 小結(jié)
第10章 用DirectSound和DirectMusic演奏樂(lè)曲
10.1 在PC上對(duì)聲音編程
10.2 從此有了聲音…
10.3 數(shù)碼聲音與MIDI比較——音質(zhì)好且存儲(chǔ)省
10.3.1 數(shù)碼聲音——從“位”開(kāi)始
10.3.2 合成聲音與MIDI
10.3.3 MIDI概述
10.4 發(fā)聲硬件
10.4.1 波表合成
10.4.2 波導(dǎo)合成
10.5 數(shù)碼錄音:設(shè)備和技術(shù)
10.5.1 錄制聲音
10.5.2 處理聲音
10.6 DirectSound中的麥克風(fēng)
10.7 初始化DirectSound
10.7.1 理解協(xié)作等級(jí)
10.7.2 設(shè)定協(xié)作等級(jí)
10.8 主聲音緩沖區(qū)與輔助聲音緩沖區(qū)
10.8.1 使用輔助緩沖區(qū)
10.8.2 創(chuàng)建輔助聲音緩沖區(qū)
10.8.3 把數(shù)據(jù)寫(xiě)入輔助聲音緩沖區(qū)
10.9 渲染聲音
10.9.1 播放聲音
10.9.2 停止播放
10.9.3 控制音量
10.9.4 調(diào)整頻率
10.9.5 調(diào)整聲道平衡
10.10 用DirectSound反饋信息
10.11 從磁盤(pán)中讀取聲音數(shù)據(jù)
10.11.1 .WAV文件格式
10.11.2 讀取.WAV文件
10.12 DirectMusic:偉大的試驗(yàn)
10.13 DirectMusic的體系結(jié)構(gòu)
10.14 初始化DirectMusic
10.14.1 初始化COM
10.14.2 創(chuàng)建一個(gè)演奏對(duì)象
10.14.3 給演奏對(duì)象增加端口
10.15 加載一個(gè)MIDI段
10.15.1 創(chuàng)建一個(gè)加載程序
10.15.2 加載MIDI文件
10.16 操作MIDI段
10.16.1 播放一個(gè)MIDI段
10.16.2 停止一個(gè)MIDI段
10.16.3 檢查MIDI段的狀態(tài)
10.16.4 釋放一個(gè)MIDI段
10.16.5 關(guān)閉DirectMusic
10.16.6 一些DirectMusic的實(shí)例
10.17 T3DLIB3聲音和樂(lè)曲庫(kù)
10.17.1 頭文件
10.17.2 類型
10.17.3 全局變量
10.17.4 DirectSound API封裝
10.17.5 DirectMusic API封裝
10.18 小結(jié)
第三部分 核心游戲編程
第11章 算法、數(shù)據(jù)結(jié)構(gòu)、 內(nèi)存管理和多線程
11.1 數(shù)據(jù)結(jié)構(gòu)
11.1.1 靜態(tài)結(jié)構(gòu)和數(shù)組
11.1.2 鏈表
11.2 算法分析
11.3 遞歸
11.4 樹(shù)結(jié)構(gòu)
11.4.1 建立二分查找樹(shù)(BST)
11.4.2 搜索BST
11.5 優(yōu)化理論
11.5.1 運(yùn)用你的頭腦
11.5.2 數(shù)學(xué)技巧
11.5.3 定點(diǎn)運(yùn)算
11.5.4 循環(huán)體展開(kāi)
11.5.5 查找表
11.5.6 匯編語(yǔ)言
11.6 制作演示
11.6.1 預(yù)先記錄的演示
11.6.2 由人工智能控制的演示
11.7 保存游戲的手段
11.8 實(shí)現(xiàn)多人游戲
11.8.1 輪流
11.8.2 分屏
11.9 多線程編程技術(shù)
11.9.1 多線程編程的術(shù)語(yǔ)
11.9.2 為何要在游戲中使用線程
11.9.3 取得一個(gè)線程
11.9.4 線程間的消息傳遞
11.9.5 等待合適時(shí)機(jī)
11.9.6 多線程和DirectX
11.9.7 高級(jí)多線程編程
10.10 小結(jié)
第12章 人工智能
12.1 人工智能初步
12.2 確定性AI算法
12.2.1 隨機(jī)運(yùn)動(dòng)
12.2.2 跟蹤算法
12.2.3 反跟蹤:閃避算法
12.3 模式以及基本控制腳本的編寫(xiě)
12.3.1 基本模式
12.3.2 具備條件邏輯處理的模式
12.4 行為狀態(tài)系統(tǒng)建?!?br />12.4.1 基本狀態(tài)機(jī)
12.4.2 加入更多表現(xiàn)個(gè)性的行為
12.5 用軟件對(duì)記憶和學(xué)習(xí)進(jìn)行建?!?br />12.6 計(jì)劃樹(shù)和決策樹(shù)
12.6.1 計(jì)劃編程
12.6.2 實(shí)現(xiàn)真正的計(jì)劃生成器
12.7 尋路
12.7.1 試探法(Trial and Error)
12.7.2 輪廓跟蹤
12.7.3 碰撞規(guī)避跟蹤
12.7.4 路點(diǎn)尋路
12.7.5 一個(gè)賽車?yán)印?br />12.7.6 可靠的尋路
12.8 高級(jí)AI腳本
12.8.1 設(shè)計(jì)腳本語(yǔ)言
12.8.2 使用C/C++編譯器
12.9 人工神經(jīng)網(wǎng)絡(luò)
12.10 遺傳算法
12.11 模糊邏輯
12.11.1 普通集合論
12.11.2 模糊集合理論
12.11.3 模糊語(yǔ)言變量及其規(guī)則
12.11.4 模糊流形與成員關(guān)系
12.11.5 模糊關(guān)聯(lián)矩陣
12.11.6 用模糊化的輸入處理FAM
12.11.7 暖融融
12.12 為游戲創(chuàng)造真正的AI
12.13 小結(jié)
第13章 基本物理建?!?br />13.1 基本物理學(xué)定律
13.1.1 質(zhì)量(m)
13.1.2 時(shí)間(t)
13.1.3 位置(s)
13.1.4 速率(v)
13.1.5 加速度(a)
13.1.6 力(F)
13.1.7 多維空間中的力
13.1.8 動(dòng)量(P)
13.2 線性動(dòng)量的物理性質(zhì):守恒與傳遞
13.3 模擬萬(wàn)有引力效果
13.3.1 模擬重力井
13.3.2 模擬炮彈彈道
13.4 討厭的摩擦力
13.4.1 摩擦基本概念
13.4.2 斜面上的摩擦力(高級(jí))
13.5 基本的特殊碰撞反應(yīng)
13.5.1 簡(jiǎn)單的x,y反彈物理
13.5.2 計(jì)算任意方向上的平面碰撞反應(yīng)
13.5.3 矢量反射示例
13.5.4 線段的交點(diǎn)
13.6 實(shí)際2D物體間的精確碰撞響應(yīng)(高級(jí))
13.7 解決n-t坐標(biāo)系統(tǒng)
13.8 簡(jiǎn)單運(yùn)動(dòng)學(xué)
13.8.1 求解正向運(yùn)動(dòng)學(xué)問(wèn)題
13.8.2 解決反向運(yùn)動(dòng)學(xué)問(wèn)題
13.9 粒子系統(tǒng)
13.9.1 每顆粒子都需要的東西
13.9.2 設(shè)計(jì)粒子引擎
13.9.3 粒子引擎軟件
13.9.4 產(chǎn)生初始條件
13.9.5 整合微粒系統(tǒng)
13.10 創(chuàng)建游戲的物理模型
13.10.1 物理建模的數(shù)據(jù)結(jié)構(gòu)
13.10.2 基于幀的模擬與基于時(shí)間的模擬
13.11 小結(jié)
第14章 文字時(shí)代
14.1 什么是文字游戲
14.2 文字游戲如何工作
14.3 從外部世界獲得輸入
14.4 語(yǔ)言分析和解析
14.4.1 詞法分析
14.4.2 句法分析
14.4.3 語(yǔ)義分析
14.5 組成游戲世界
14.5.1 表示場(chǎng)景
14.5.2 放置物體
14.5.3 讓事情發(fā)生
14.5.4 自由移動(dòng)
14.5.5 物品系統(tǒng)
14.6 實(shí)現(xiàn)視覺(jué)、聽(tīng)覺(jué)和嗅覺(jué)
14.6.1 聽(tīng)覺(jué)
14.6.2 嗅覺(jué)
14.6.3 視覺(jué)
14.7 實(shí)時(shí)響應(yīng)
14.8 錯(cuò)誤處理
14.9 造訪Shadow Land
14.10 Shadow Land中使用的語(yǔ)言
14.11 編譯和運(yùn)行Shadow Land
14.12 小結(jié)
第15章 綜合運(yùn)用
15.1 Outpost的設(shè)計(jì)初稿
15.1.1 游戲背景
15.1.2 設(shè)計(jì)游戲玩法
15.2 用于編寫(xiě)游戲的工具
15.3 游戲場(chǎng)景:在太空中卷動(dòng)
15.4 玩家控制的飛船:鬼怪號(hào)
15.5 小行星帶
15.6 敵人
15.6.1 邊哨(Outpost)
15.6.2 捕食者太空雷
15.6.3 戰(zhàn)艦
15.7 “寶物”
15.8 HUD
15.9 粒子系統(tǒng)
15.10 玩游戲
15.11 編譯Outpost
15.12 結(jié)束語(yǔ)
第四部分 附錄
附錄A 光盤(pán)內(nèi)容簡(jiǎn)介
附錄B 安裝DirectX和使用C/C++編譯器
附錄C 數(shù)學(xué)和三角學(xué)回顧
附錄D C++入門(mén)
附錄E 游戲編程資源
附錄F ASCII表
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 在DirectX 8.0版本里,Microsoft決定將DirectDraw和Direct3D緊密地集成到一起,總稱為DirectXGraphics。結(jié)果就是DirectDraw在8.0版本里被移除了,不過(guò),你仍然可以使用DirectDraw,在DirectX8.0版本中并沒(méi)有將它升級(jí)。另外,DirectSound和DirectMusic也被緊密地集成,從而成為現(xiàn)在的DirectXAudi0。最后,DirectShow(來(lái)自以前的DirectMedia)現(xiàn)在也已經(jīng)被集成到DirectX里。Microsoft那些家伙可真是有夠忙活的! 上面說(shuō)的這些有點(diǎn)過(guò)于龐雜和令人費(fèi)解了,但是DirectX有一點(diǎn)非常好,那就是通過(guò)COM(我們很快會(huì)熟悉它的),使用者實(shí)際可以按照需要來(lái)決定究竟使用DirectX 3.0、5.0、6.0或是其他任何版本。對(duì)于本書(shū)而言,使用7.0版本和8.0版本就已經(jīng)綽綽有余了。此外,如果你了解DirectX的其中一個(gè)版本的話,你就能一通百通地了解其他所有版本。盡管語(yǔ)法上可能有些微小的變化,界面也有些細(xì)微差別,但是總的來(lái)說(shuō),它們還是一樣的。只有Direct3D是惟一有很大改動(dòng)的部分,我們?cè)诒緯?shū)中不做該方面的闡述,實(shí)際上,我們將重點(diǎn)討論的是游戲編程的內(nèi)容。雖然,在CD里有兩本關(guān)于3D的書(shū),其中有一本就是講Direct3D的,但是在本書(shū)中,我們不會(huì)涉及太多DirectX的內(nèi)容,所以你只要學(xué)習(xí)有關(guān)游戲制作的那部分就足夠了。但是,畢竟你的整個(gè)游戲編程生涯并不會(huì)與DirectX綁在一起,如果你使用的是其他的API(應(yīng)用編程接口),你仍然可以理解游戲編程的基礎(chǔ)技術(shù),這才是本書(shū)的終極目標(biāo)。 5.1.1 HEL和HAL 在圖5—2里,你會(huì)發(fā)現(xiàn)在DirectX的下面有兩個(gè)層分別叫做HEL(Hardware Emulation Layer,硬件仿真層)和HAL(HardwareAbstraction Layer,硬件抽象層)。原理是這樣的:DirectX是一種具有前瞻性的設(shè)計(jì)思路,它假定那些高級(jí)功能將由硬件實(shí)現(xiàn)。但是,如果硬件并不支持其中某些功能特性,那又該如何處理呢?這就是HAL和HEL雙重模式的基本設(shè)計(jì)思路。 HAL,也就是硬件抽象層,是直接和硬件對(duì)話的一層。HAL是一種設(shè)備驅(qū)動(dòng)程序,通常由設(shè)備生產(chǎn)商提供,你可以通過(guò)常規(guī)DirectX調(diào)用直接和它進(jìn)行通信。條件是,只有當(dāng)硬件能夠直接支持你所要求執(zhí)行的功能的時(shí)候HAL才被使用,從而達(dá)到加速的效果。例如,當(dāng)你要求繪制一個(gè)位圖的時(shí)候,硬件數(shù)據(jù)塊復(fù)制器(Blitter)能迅速完成這個(gè)任務(wù),比軟件循環(huán)要高效得多。 HEL,也就是硬件仿真層,運(yùn)用于當(dāng)硬件不支持你所要求的性能的時(shí)候。比方說(shuō),當(dāng)你要求視頻卡完成位圖旋轉(zhuǎn),如果硬件不支持旋轉(zhuǎn)這個(gè)功能,HEL就會(huì)加入,通過(guò)軟件運(yùn)算來(lái)完成該項(xiàng)任務(wù)。顯然,這么處理速度較慢,但是關(guān)鍵是,這樣就不會(huì)因?yàn)橛布恢С侄绊懩愕膽?yīng)用程序。程序依然可行,只是慢一點(diǎn)而已。另外,HAL和HEL之間的切換對(duì)用戶而言是透明的。
媒體關(guān)注與評(píng)論
《Windows游戲編程大師技巧(第2版)》堪稱是眾多游戲開(kāi)發(fā)人員的啟蒙經(jīng)典。作者André LaMothe是把復(fù)雜問(wèn)題簡(jiǎn)單化講解方面的大師。時(shí)至今日,書(shū)中的游戲基礎(chǔ)知識(shí)和理論、開(kāi)發(fā)技巧,涉及到游戲開(kāi)發(fā)方方面面的核心問(wèn)題等,仍然很有閱讀參考的價(jià)值。沙鷹的譯本也很準(zhǔn)確可靠,得到了讀者的認(rèn)同。如果你想在游戲開(kāi)發(fā)方面打下扎實(shí)的基本功,推薦您讀讀這本書(shū)?!v訊游戲琳瑯天上工作室總經(jīng)理 姚曉光(NPC6)這是我見(jiàn)過(guò)的Windows游戲編程方面最好的一本書(shū)。如果你連游戲編程什么都不知道,還想要了解如何開(kāi)發(fā)游戲,甚至想要從事游戲開(kāi)發(fā)工作,請(qǐng)一定不要錯(cuò)過(guò)這本書(shū)。本書(shū)對(duì)于理論和實(shí)踐的把握都很到位!——BigWorld高級(jí)軟件工程師 史曉明(polyrandom)
編輯推薦
《3D游戲開(kāi)發(fā)大師技巧》是游戲界傳奇人物大師Andre LaMothe力作,Windows游戲程序員的入行必讀書(shū),由中國(guó)較早一代游戲開(kāi)發(fā)者中的代表人物之一沙鷹翻譯,由姚曉光、史曉明等專業(yè)人士重磅推薦。
名人推薦
《Windows游戲編程大師技巧(第2版)》堪稱是眾多游戲開(kāi)發(fā)人員的啟蒙經(jīng)典。作者André LaMothe是把復(fù)雜問(wèn)題簡(jiǎn)單化講解方面的大師。時(shí)至今日,書(shū)中的游戲基礎(chǔ)知識(shí)和理論、開(kāi)發(fā)技巧,涉及游戲開(kāi)發(fā)方方面面的核心問(wèn)題等,仍然很有閱讀參考的價(jià)值。沙鷹的譯本也很準(zhǔn)確、可靠,得到了讀者的認(rèn)同。如果你想在游戲開(kāi)發(fā)方面打下扎實(shí)的基本功,推薦你讀讀這本書(shū)。 ——姚曉光(NPC6),騰訊游戲琳瑯夭上工作室總經(jīng)理 這是我見(jiàn)過(guò)的Windows游戲編程方面最好的一本書(shū)。如果你連游戲編程是什么都不知道,還想要了解如何開(kāi)發(fā)游戲,甚至想要從事游戲開(kāi)發(fā)工作,請(qǐng)一定不要錯(cuò)過(guò)這本書(shū)。本書(shū)對(duì)于理論和實(shí)踐的把握都很到位! ——史曉明(polyrandom),BigWorld高級(jí)軟件工程師
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版