本書(shū)從游戲編程的角度介紹C++語(yǔ)言,既獨(dú)具匠心又妙趣橫生。
全書(shū)共10章,每章介紹C++語(yǔ)言的一個(gè)或數(shù)個(gè)重要的知識(shí)領(lǐng)域,同時(shí)通過(guò)一個(gè)游戲示例項(xiàng)目的開(kāi)發(fā)進(jìn)行實(shí)踐和講解。每章的結(jié)尾,會(huì)在一個(gè)游戲項(xiàng)目中將一些*重要的概念組合起來(lái)。*后一章的游戲?qū)⒕C合運(yùn)用本書(shū)介紹的概念與技巧,創(chuàng)建一個(gè)相對(duì)復(fù)雜的游戲,涵蓋了本書(shū)介紹過(guò)的所有主要概念。隨著學(xué)習(xí)的深入,讀者將學(xué)會(huì)如何組織編程項(xiàng)目,如何將問(wèn)題分解為可管理的子問(wèn)題塊,以及如何精煉代碼。
本書(shū)適合任何想編寫(xiě)游戲的讀者,主要針對(duì)初學(xué)者,并假設(shè)讀者之前沒(méi)有任何編程經(jīng)驗(yàn)。通過(guò)閱讀本書(shū),并在實(shí)驗(yàn)中實(shí)踐,讀者將為掌握C++這門(mén)語(yǔ)言并為游戲編程打下堅(jiān)實(shí)的基礎(chǔ)。
本書(shū)從C++與游戲編程的基礎(chǔ)開(kāi)始,假設(shè)讀者對(duì)兩者都沒(méi)有經(jīng)驗(yàn)。隨著章節(jié)的推進(jìn),本書(shū)將在已學(xué)內(nèi)容的基礎(chǔ)上介紹更高級(jí)的內(nèi)容。本書(shū)的每一章介紹一個(gè)或幾個(gè)相關(guān)主題。在介紹概念的同時(shí)會(huì)給出長(zhǎng)度較短并且與游戲相關(guān)的程序來(lái)進(jìn)行演示。每章的結(jié)尾會(huì)在一個(gè)游戲項(xiàng)目中將一些重要的概念組合起來(lái)。本書(shū)一章以一個(gè)雄心的項(xiàng)目來(lái)結(jié)束,它涵蓋了本書(shū)介紹過(guò)的所有主要概念。
Michael Dawson是一位程序員、游戲設(shè)計(jì)師和游戲開(kāi)發(fā)者。他獲得了南加州大學(xué)的計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,并且目前教授大學(xué)生學(xué)習(xí)游戲編程。Mike的著作包括Beginning C++ Through Game Programming, Python Programming for the Absolute Beginner, C++ Projects: Programming withText-Based Games和 Guide to Programming with Python。請(qǐng)?jiān)L問(wèn)他的網(wǎng)站www.programgames.com,了解他的圖書(shū)的更多信息,并獲得相關(guān)的支持。
目錄
第1章 類型、變量與標(biāo)準(zhǔn)I/O:
Lost Fortune1
1.1 C++簡(jiǎn)介1
1.1.1 使用C++編寫(xiě)游戲1
1.1.2 生成可執(zhí)行文件2
1.1.3 錯(cuò)誤處理3
1.1.4 理解ISO標(biāo)準(zhǔn)4
1.2 編寫(xiě)**個(gè)C++程序4
1.2.1 Game Over程序簡(jiǎn)介4
1.2.2 注釋5
1.2.3 使用空白字符6
1.2.4 包含其他文件6
1.2.5 定義main()函數(shù)7
1.2.6 通過(guò)標(biāo)準(zhǔn)輸出顯示
文本7
1.2.7 語(yǔ)句的終止8
1.2.8 從main()函數(shù)返回值8
1.3 使用std名稱空間9
1.3.1 Game Over 2.0程序
簡(jiǎn)介9
1.3.2 使用using指令10
1.3.3 Game Over 3.0
程序簡(jiǎn)介10
1.3.4 使用using聲明11
1.3.5 使用using的時(shí)機(jī)11
1.4 使用算術(shù)運(yùn)算符12
1.4.1 Expensive Calculator
程序簡(jiǎn)介12
1.4.2 加法、減法與乘法13
1.4.3 理解整型與浮點(diǎn)型
除法13
1.4.4 使用模除運(yùn)算符14
1.4.5 運(yùn)算符的優(yōu)先級(jí)14
1.5 聲明和初始化變量14
1.5.1 Game Stats程序簡(jiǎn)介14
1.5.2 基本類型16
1.5.3 類型修飾符16
1.5.4 變量聲明17
1.5.5 變量命名18
1.5.6 變量的賦值19
1.5.7 變量初始化20
1.5.8 顯示變量值20
1.5.9 獲取用戶輸入20
1.5.10 為類型定義新名稱21
1.5.11 類型的選擇21
1.6 使用變量進(jìn)行算術(shù)運(yùn)算21
1.6.1 Game Stats 2.0
程序簡(jiǎn)介22
1.6.2 修改變量值23
1.6.3 使用組合賦值運(yùn)算符23
1.6.4 遞增運(yùn)算符與遞減
運(yùn)算符24
1.6.5 整數(shù)的溢出處理25
1.7 使用常量26
1.7.1 Game Stats 3.0
程序簡(jiǎn)介26
1.7.2 使用常量27
1.7.3 使用枚舉類型27
1.8 Lost Fortune簡(jiǎn)介28
1.8.1 創(chuàng)建程序29
1.8.2 從玩家獲取信息30
1.8.3 講故事30
1.9 本章小結(jié)31
1.10 問(wèn)與答32
1.11 問(wèn)題討論33
1.12 習(xí)題34
第2章 真值、分支與游戲循環(huán):
Guess My Number35
2.1 理解真值35
2.2 使用if語(yǔ)句36
2.2.1 Score Rater程序簡(jiǎn)介36
2.2.2 驗(yàn)證真與假38
2.2.3 值的真與假39
2.2.4 使用關(guān)系運(yùn)算符39
2.2.5 if語(yǔ)句的嵌套40
2.3 使用else子句40
2.3.1 Score Rater 2.0
程序簡(jiǎn)介41
2.3.2 兩種創(chuàng)建分支的方法42
2.4 使用帶else子句的if
語(yǔ)句序列43
2.4.1 Score Rater 3.0程序
簡(jiǎn)介43
2.4.2 創(chuàng)建帶else子句的if
語(yǔ)句序列44
2.5 使用switch語(yǔ)句45
2.5.1 Menu Chooser程序
簡(jiǎn)介46
2.5.2 創(chuàng)建多路分支48
2.6 使用while循環(huán)48
2.6.1 Play Again游戲簡(jiǎn)介48
2.6.2 使用while循環(huán)49
2.7 使用do循環(huán)50
2.7.1 Play Again 2.0程序
簡(jiǎn)介50
2.7.2 使用do循環(huán)51
2.8 使用break和continue語(yǔ)句52
2.8.1 Finicky Counter程序
簡(jiǎn)介52
2.8.2 創(chuàng)建while(true)循環(huán)53
2.8.3使用break語(yǔ)句退出
循環(huán)53
2.8.4 使用continue語(yǔ)句跳轉(zhuǎn)
到循環(huán)開(kāi)始54
2.8.5 使用break和continue
的時(shí)機(jī)54
2.9 使用邏輯運(yùn)算符54
2.9.1 Designers Network程序
簡(jiǎn)介55
2.9.2 使用邏輯與運(yùn)算符57
2.9.3 使用邏輯或運(yùn)算符58
2.9.4 使用邏輯非運(yùn)算符58
2.9.5 運(yùn)算符的優(yōu)先級(jí)59
2.10 隨機(jī)數(shù)的生成60
2.10.1 Die Roller程序簡(jiǎn)介60
2.10.2 調(diào)用rand()函數(shù)61
2.10.3 為隨機(jī)數(shù)生成器確定
種子61
2.10.4 在一定范圍內(nèi)計(jì)算62
2.11 理解游戲主循環(huán)63
2.12 Guess My Number游戲
簡(jiǎn)介64
2.12.1 采用游戲主循環(huán)64
2.12.2 初始化游戲65
2.12.3 創(chuàng)建游戲主循環(huán)66
2.12.4 游戲結(jié)束67
2.13 本章小結(jié)67
2.14 問(wèn)與答68
2.15 問(wèn)題討論69
2.16 習(xí)題69
第3章 for循環(huán)、字符串與數(shù)組:
Word Jumble71
3.1 使用for循環(huán)71
3.1.1 Counter程序簡(jiǎn)介72
3.1.2 使用for循環(huán)計(jì)數(shù)73
3.1.3 在for循環(huán)中使用空
語(yǔ)句74
3.1.4 for循環(huán)的嵌套74
3.2 了解對(duì)象75
3.3 使用string對(duì)象77
3.3.1 String Tester程序簡(jiǎn)介77
3.3.2 創(chuàng)建string對(duì)象79
3.3.3 string對(duì)象的連接79
3.3.4 使用size()成員函數(shù)79
3.3.5 索引string對(duì)象80
3.3.6 循環(huán)訪問(wèn)string對(duì)象81
3.3.7 使用find()成員函數(shù)81
3.3.8 使用erase()成員函數(shù)82
3.3.9 使用empty()成員函數(shù)83
3.4 使用數(shù)組83
3.4.1 Hero's Inventory程序
簡(jiǎn)介83
3.4.2 創(chuàng)建數(shù)組85
3.4.3 數(shù)組的索引86
3.4.4 使用數(shù)組元素的成員
函數(shù)87
3.4.5 數(shù)組邊界87
3.5 理解C風(fēng)格字符串88
3.6 使用多維數(shù)組89
3.6.1 Tic-Tac-Toe Board程序
簡(jiǎn)介90
3.6.2 創(chuàng)建多維數(shù)組91
3.6.3 多維數(shù)組的索引92
3.7 Word Jumble程序簡(jiǎn)介92
3.7.1 創(chuàng)建程序93
3.7.2 選擇單詞93
3.7.3 單詞亂序94
3.7.4 歡迎界面95
3.7.5 進(jìn)入游戲主循環(huán)95
3.7.6 游戲結(jié)束96
3.8 本章小結(jié)96
3.9 問(wèn)與答97
3.10 問(wèn)題討論99
3.11 習(xí)題99
第4章 標(biāo)準(zhǔn)模板庫(kù):Hangman100
4.1 標(biāo)準(zhǔn)模板庫(kù)簡(jiǎn)介100
4.2 使用vector101
4.2.1 Hero's Inventory 2.0程序
簡(jiǎn)介101
4.2.2 使用向量的準(zhǔn)備工作103
4.2.3 向量的聲明103
4.2.4 使用push_back()成員
函數(shù)104
4.2.5 使用size()成員函數(shù)104
4.2.6 向量的索引105
4.2.7 調(diào)用元素的成員函數(shù)105
4.2.8 使用pop_back()成員
函數(shù)106
4.2.9 使用clear()成員函數(shù)106
4.2.10 使用empty()成員
函數(shù)106
4.3 使用迭代器107
4.3.1 Hero's Inventory 3.0程序
簡(jiǎn)介107
4.3.2 迭代器的聲明109
4.3.3 循環(huán)訪問(wèn)向量110
4.3.4 修改向量元素的值111
4.3.5 訪問(wèn)向量元素的成員
函數(shù)