本書從游戲編程的角度介紹C++語言,既獨(dú)具匠心又妙趣橫生。
全書共10章,每章介紹C++語言的一個或數(shù)個重要的知識領(lǐng)域,同時通過一個游戲示例項(xiàng)目的開發(fā)進(jìn)行實(shí)踐和講解。每章的結(jié)尾,會在一個游戲項(xiàng)目中將一些*重要的概念組合起來。*后一章的游戲?qū)⒕C合運(yùn)用本書介紹的概念與技巧,創(chuàng)建一個相對復(fù)雜的游戲,涵蓋了本書介紹過的所有主要概念。隨著學(xué)習(xí)的深入,讀者將學(xué)會如何組織編程項(xiàng)目,如何將問題分解為可管理的子問題塊,以及如何精煉代碼。
本書適合任何想編寫游戲的讀者,主要針對初學(xué)者,并假設(shè)讀者之前沒有任何編程經(jīng)驗(yàn)。通過閱讀本書,并在實(shí)驗(yàn)中實(shí)踐,讀者將為掌握C++這門語言并為游戲編程打下堅(jiān)實(shí)的基礎(chǔ)。
本書從C++與游戲編程的基礎(chǔ)開始,假設(shè)讀者對兩者都沒有經(jīng)驗(yàn)。隨著章節(jié)的推進(jìn),本書將在已學(xué)內(nèi)容的基礎(chǔ)上介紹更高級的內(nèi)容。本書的每一章介紹一個或幾個相關(guān)主題。在介紹概念的同時會給出長度較短并且與游戲相關(guān)的程序來進(jìn)行演示。每章的結(jié)尾會在一個游戲項(xiàng)目中將一些重要的概念組合起來。本書一章以一個雄心的項(xiàng)目來結(jié)束,它涵蓋了本書介紹過的所有主要概念。
Michael Dawson是一位程序員、游戲設(shè)計(jì)師和游戲開發(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。請?jiān)L問他的網(wǎng)站www.programgames.com,了解他的圖書的更多信息,并獲得相關(guān)的支持。
目錄
第1章 類型、變量與標(biāo)準(zhǔn)I/O:
Lost Fortune1
1.1 C++簡介1
1.1.1 使用C++編寫游戲1
1.1.2 生成可執(zhí)行文件2
1.1.3 錯誤處理3
1.1.4 理解ISO標(biāo)準(zhǔn)4
1.2 編寫**個C++程序4
1.2.1 Game Over程序簡介4
1.2.2 注釋5
1.2.3 使用空白字符6
1.2.4 包含其他文件6
1.2.5 定義main()函數(shù)7
1.2.6 通過標(biāo)準(zhǔn)輸出顯示
文本7
1.2.7 語句的終止8
1.2.8 從main()函數(shù)返回值8
1.3 使用std名稱空間9
1.3.1 Game Over 2.0程序
簡介9
1.3.2 使用using指令10
1.3.3 Game Over 3.0
程序簡介10
1.3.4 使用using聲明11
1.3.5 使用using的時機(jī)11
1.4 使用算術(shù)運(yùn)算符12
1.4.1 Expensive Calculator
程序簡介12
1.4.2 加法、減法與乘法13
1.4.3 理解整型與浮點(diǎn)型
除法13
1.4.4 使用模除運(yùn)算符14
1.4.5 運(yùn)算符的優(yōu)先級14
1.5 聲明和初始化變量14
1.5.1 Game Stats程序簡介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
程序簡介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
程序簡介26
1.7.2 使用常量27
1.7.3 使用枚舉類型27
1.8 Lost Fortune簡介28
1.8.1 創(chuàng)建程序29
1.8.2 從玩家獲取信息30
1.8.3 講故事30
1.9 本章小結(jié)31
1.10 問與答32
1.11 問題討論33
1.12 習(xí)題34
第2章 真值、分支與游戲循環(huán):
Guess My Number35
2.1 理解真值35
2.2 使用if語句36
2.2.1 Score Rater程序簡介36
2.2.2 驗(yàn)證真與假38
2.2.3 值的真與假39
2.2.4 使用關(guān)系運(yùn)算符39
2.2.5 if語句的嵌套40
2.3 使用else子句40
2.3.1 Score Rater 2.0
程序簡介41
2.3.2 兩種創(chuàng)建分支的方法42
2.4 使用帶else子句的if
語句序列43
2.4.1 Score Rater 3.0程序
簡介43
2.4.2 創(chuàng)建帶else子句的if
語句序列44
2.5 使用switch語句45
2.5.1 Menu Chooser程序
簡介46
2.5.2 創(chuàng)建多路分支48
2.6 使用while循環(huán)48
2.6.1 Play Again游戲簡介48
2.6.2 使用while循環(huán)49
2.7 使用do循環(huán)50
2.7.1 Play Again 2.0程序
簡介50
2.7.2 使用do循環(huán)51
2.8 使用break和continue語句52
2.8.1 Finicky Counter程序
簡介52
2.8.2 創(chuàng)建while(true)循環(huán)53
2.8.3使用break語句退出
循環(huán)53
2.8.4 使用continue語句跳轉(zhuǎn)
到循環(huán)開始54
2.8.5 使用break和continue
的時機(jī)54
2.9 使用邏輯運(yùn)算符54
2.9.1 Designers Network程序
簡介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)先級59
2.10 隨機(jī)數(shù)的生成60
2.10.1 Die Roller程序簡介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游戲
簡介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 問與答68
2.15 問題討論69
2.16 習(xí)題69
第3章 for循環(huán)、字符串與數(shù)組:
Word Jumble71
3.1 使用for循環(huán)71
3.1.1 Counter程序簡介72
3.1.2 使用for循環(huán)計(jì)數(shù)73
3.1.3 在for循環(huán)中使用空
語句74
3.1.4 for循環(huán)的嵌套74
3.2 了解對象75
3.3 使用string對象77
3.3.1 String Tester程序簡介77
3.3.2 創(chuàng)建string對象79
3.3.3 string對象的連接79
3.3.4 使用size()成員函數(shù)79
3.3.5 索引string對象80
3.3.6 循環(huán)訪問string對象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程序
簡介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程序
簡介90
3.6.2 創(chuàng)建多維數(shù)組91
3.6.3 多維數(shù)組的索引92
3.7 Word Jumble程序簡介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 問與答97
3.10 問題討論99
3.11 習(xí)題99
第4章 標(biāo)準(zhǔn)模板庫:Hangman100
4.1 標(biāo)準(zhǔn)模板庫簡介100
4.2 使用vector101
4.2.1 Hero's Inventory 2.0程序
簡介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程序
簡介107
4.3.2 迭代器的聲明109
4.3.3 循環(huán)訪問向量110
4.3.4 修改向量元素的值111
4.3.5 訪問向量元素的成員
函數(shù)