本書是游戲編程經(jīng)典入門讀物的最新版。
全書共分14章,包含兩個(gè)附錄。本書首先介紹Windows和DirectX編程,然后快速介紹游戲編程的工具箱,包括使用C++和DirectX開(kāi)發(fā)游戲所需的所有基礎(chǔ)知識(shí)。讀者將學(xué)習(xí)到把思想轉(zhuǎn)化為現(xiàn)實(shí)所需的技術(shù),比如2D、3D圖形的繪制、背景卷動(dòng)、處理游戲輸入、音效、碰撞檢測(cè)等。在每章結(jié)束時(shí),給出了測(cè)驗(yàn)題和項(xiàng)目以便幫助讀者實(shí)踐新學(xué)到的技能。本書配套網(wǎng)站提供了所有示例代碼和項(xiàng)目的下載。
本書自第1版出版至今已經(jīng)長(zhǎng)達(dá)十年,深受廣大讀者歡迎。本書有志于進(jìn)入游戲編程世界且有一定C++編程基礎(chǔ)的初學(xué)者閱讀,也適合作為社會(huì)培訓(xùn)機(jī)構(gòu)的培訓(xùn)教材。
游戲編程經(jīng)典入門讀物的**版,更新到**的第4版。 本書自第1版出版至今已經(jīng)長(zhǎng)達(dá)十年,深受廣大讀者歡迎。本書有志于進(jìn)入游戲編程世界且有一定C++編程基礎(chǔ)的初學(xué)者閱讀,也適合作為社會(huì)培訓(xùn)機(jī)構(gòu)的培訓(xùn)教材。 讀者將學(xué)習(xí)到把思想轉(zhuǎn)化為現(xiàn)實(shí)所需的技術(shù),比如2D、3D圖形的繪制、背景卷動(dòng)、處理游戲輸入、音效、碰撞檢測(cè)等。在每章結(jié)束時(shí),給出了測(cè)驗(yàn)題和項(xiàng)目以便幫助讀者實(shí)踐新學(xué)到的技能! ”緯呐涮拙W(wǎng)站 jharbour.com提供了所有示例代碼和項(xiàng)目的下載。
Jonathan S. Harbour編寫了19本游戲開(kāi)發(fā)方面的書,有針對(duì)PC、Mac、Linux、Android、Windows Phone和游戲控制臺(tái)的。他在University of Advancing Technology(www.uat.edu)教了5年課程,在那里,他和學(xué)生一起使用PlayStation 2 TOOL開(kāi)發(fā)工具包、Nintendo Dolphin SDK、Xbox 360 XNA SDK、人工智能、數(shù)據(jù)庫(kù)、DirectX等工具和技術(shù)。他還教授了C++、Java、VB、C#、LUA、Python和SQL課程。他的個(gè)人站點(diǎn)是jharbour.com。
第1部分 Windows和DirectX游戲編程引言
第1章 Windows初步
1.1 Windows編程概述
1.1.1 "獲取"Windows
1.1.2 理解Windows消息機(jī)制
1.1.3 多任務(wù)
1.1.4 多線程
1.1.5 事件處理
1.2 DirectX快速概覽
Direct3D是什么
1.3 Windows程序基礎(chǔ)
1.3.1 創(chuàng)建第一個(gè)Win32項(xiàng)目
1.3.2 理解WinMain
1.3.3 完整的WinMain
1.4 你所學(xué)到的
1.5 復(fù)習(xí)測(cè)驗(yàn)
1.6 自己動(dòng)手
第2章 偵聽(tīng)Windows消息
2.1 編寫一個(gè)Windows程序
2.1.1 理解InitInstance
2.1.2 理解MyRegisterClass
2.1.3 曬一曬WinProc的秘密
2.2 什么是游戲循環(huán)
2.2.1 老的WinMain
2.2.2 WinMain和循環(huán)
2.3 GameLoop項(xiàng)目
GameLoop程序的源代碼
2.4 你所學(xué)到的
2.5 復(fù)習(xí)測(cè)驗(yàn)
2.6 自己動(dòng)手
第3章 初始化Direct3D
3.1 Direct3D初步
3.1.1 Direct3D接口
3.1.2 創(chuàng)建Direct3D對(duì)象
3.1.3 第一個(gè)Direct3D項(xiàng)目
3.1.4 全屏模式的Direct3D
3.2 你所學(xué)到的
3.3 復(fù)習(xí)測(cè)驗(yàn)
3.4 自己動(dòng)手
第2部分 游戲編程工具箱
第4章 繪制位圖
4.1 表面和位圖
4.1.1 主表面
4.1.2 從的離屏(off-screen)表面
4.1.3 Create Surface示例
4.1.4 裝載位圖
4.1.5 Load_Bitmap程序
4.1.6 代碼回收利用
4.2 你所學(xué)到的
4.3 復(fù)習(xí)測(cè)驗(yàn)
4.4自己動(dòng)手
第5章 從鍵盤、鼠標(biāo)和控制器獲得輸入
5.1 鍵盤輸入
5.1.1 DirectInput對(duì)象和設(shè)備
5.1.2 初始化鍵盤
5.1.3 讀取鍵盤按鍵
5.2 鼠標(biāo)輸入
5.2.1 初始化鼠標(biāo)
5.2.2 讀取鼠標(biāo)
5.3 Xbox 360控制器輸入
5.3.1 初始化XInput
5.3.2 讀取控制器狀態(tài)
5.3.3 控制器振動(dòng)
5.3.4 測(cè)試XInput
5.4 精靈編程簡(jiǎn)介
5.4.1 一個(gè)有用的精靈結(jié)構(gòu)
5.4.2 加載精靈圖像
5.4.3 繪制精靈圖像
5.5 Bomb Catcher游戲
5.5.1 MyWindows.cpp
5.5.2 MyDirectX.h
5.5.3 MyDirectX.cpp
5.5.4 MyGame.cpp
5.6 你所學(xué)到的
5.7 復(fù)習(xí)測(cè)驗(yàn)
5.8 自己動(dòng)手
第6章 繪制精靈并顯示精靈動(dòng)畫
6.1 什么是精靈
6.2 加載精靈圖像
6.3 透明的精靈
6.3.1 初始化精靈渲染器
6.3.2 繪制透明的精靈
6.4 繪制動(dòng)畫的精靈
6.4.1 使用精靈表
6.4.2 精靈動(dòng)畫演示
6.5 你所學(xué)到的
6.6 復(fù)習(xí)測(cè)驗(yàn)
6.7 自己動(dòng)手
第7章 精靈變換
7.1 精靈旋轉(zhuǎn)和縮放
7.1.1 2D變換
7.1.2 繪制變換了的精靈
7.1.3 Rotate_Scale_Demo程序
7.1.4 帶有變換的動(dòng)畫
7.2 你所學(xué)到的
7.3 復(fù)習(xí)測(cè)驗(yàn)
7.4 自己動(dòng)手
第8章 檢測(cè)精靈碰撞
8.1 邊界框碰撞檢測(cè)
8.1.1 處理矩形
8.1.2 編寫碰撞函數(shù)
8.1.3 新的精靈結(jié)構(gòu)
8.1.4 為精靈的縮放進(jìn)行調(diào)整
8.1.5 邊界框演示程序
8.2 基于距離的碰撞檢測(cè)
8.2.1 計(jì)算距離
8.2.2 編寫距離計(jì)算的代碼
8.2.3 測(cè)試的碰撞
8.3 你所學(xué)到的
8.4 復(fù)習(xí)測(cè)驗(yàn)
8.5 自己動(dòng)手
第9章 打印文本
9.1 創(chuàng)建字體
9.1.1 字體描述符
9.1.2 創(chuàng)建字體對(duì)象
9.1.3 可重用的MakeFont函數(shù)
9.2 使用ID3DXFont打印文本
9.2.1 使用DrawText打印
9.2.2 文本折行
9.3 測(cè)試字體輸出
9.4 你所學(xué)到的
9.5 復(fù)習(xí)測(cè)驗(yàn)
9.6 自己動(dòng)手
第10章 卷動(dòng)背景
10.1 卷動(dòng)
10.1.1 背景和布景
10.1.2 從圖片單元?jiǎng)?chuàng)建背景
10.1.3 基于圖片單元的卷動(dòng)
10.2 動(dòng)態(tài)渲染的圖片單元
10.2.1 圖片單元地圖
10.2.2 使用Mappy創(chuàng)建圖片單元地圖
10.2.3 Tile Dynamic Scroll項(xiàng)目
10.3 基于位圖的卷動(dòng)
10.3.1 基于位圖的卷動(dòng)理論
10.3.2 位圖卷動(dòng)演示
10.4 你所學(xué)到的
10.5 復(fù)習(xí)測(cè)驗(yàn)
10.6 自己動(dòng)手
第11章 播放音頻
11.1 使用DirectSound
11.1.1 初始化DirectSound
11.1.2 創(chuàng)建聲音緩沖區(qū)
11.1.3 裝載波形文件
11.1.4 播放聲音
11.2 測(cè)試DirectSound
11.2.1 創(chuàng)建項(xiàng)目
11.2.2 修改"MyDirectX"文件
11.2.3 修改MyGame.cpp
11.3 你所學(xué)到的
11.4 復(fù)習(xí)測(cè)驗(yàn)
11.5 自己動(dòng)手
第12章 學(xué)習(xí)3D渲染基礎(chǔ)
12.1 3D編程簡(jiǎn)介
12.1.1 3D編程的關(guān)鍵組成部分
12.1.2 3D場(chǎng)景
12.1.3 轉(zhuǎn)移到第三個(gè)軸
12.1.4 掌握3D管線
12.1.5 頂點(diǎn)緩沖區(qū)
12.1.6 渲染頂點(diǎn)緩沖區(qū)
12.1.7 創(chuàng)建四邊形
12.2 帶紋理的立方體示例
12.3 你所學(xué)到的
12.4 復(fù)習(xí)測(cè)驗(yàn)
12.5 自己動(dòng)手
第13章 渲染3D模型文件
13.1 創(chuàng)建以及渲染后援網(wǎng)格
13.1.1 創(chuàng)建后援網(wǎng)格
13.1.2 渲染后援網(wǎng)格
13.1.3 編寫著色器代碼
13.1.4 Stock Mesh程序
13.2 裝載并渲染模型文件
13.2.1 裝載.X文件
13.2.2 渲染紋理模型
13.2.3 從內(nèi)存中刪除一個(gè)模型
13.2.4 Render Mesh程序
13.3 你所學(xué)到的
13.4 復(fù)習(xí)測(cè)驗(yàn)
13.5 自己動(dòng)手
第14章 Anti-Virus(反病毒)游戲
14.1 Anti-Virus游戲
14.1.1 游戲玩法
14.1.2 游戲源代碼
14.2 你所學(xué)到的
14.3 復(fù)習(xí)測(cè)驗(yàn)
14.4 自己動(dòng)手
第3部分 附 錄
附錄A 配置Visual Studio 2013
A.1 安裝
A.2 創(chuàng)建一個(gè)新的項(xiàng)目
A.3 修改字符集設(shè)置
A.4 修改VC++路徑
附錄B 各章測(cè)驗(yàn)答案