《Python 游戲開發(fā)從入門到精通》循序漸進(jìn)地講解了使用Python語(yǔ)言開發(fā)游戲程序的核心知識(shí),并通過(guò)具體實(shí)例的實(shí)現(xiàn)過(guò)程演練了游戲開發(fā)的方法和流程。全書共12章,主要內(nèi)容有使用Python內(nèi)置函數(shù)開發(fā)游戲,Pygame游戲開發(fā)基礎(chǔ),字體、圖形圖像和多媒體,Sprite和碰撞檢測(cè),使用AI技術(shù),當(dāng)Python遇到Cocos2d,Cocos2d進(jìn)階,Cocos2d高級(jí)應(yīng)用,使用PyOpenGL開發(fā)3D游戲,使用Panda3D開發(fā)3D游戲,綜合實(shí)戰(zhàn)—AI人機(jī)對(duì)戰(zhàn)版五子棋游戲(Pygame實(shí)現(xiàn)),綜合實(shí)戰(zhàn)—水果連連看游戲(Cocos2d實(shí)現(xiàn))。本書簡(jiǎn)潔而不失技術(shù)深度,內(nèi)容豐富全面。以極簡(jiǎn)的文字介紹了復(fù)雜的案例,是學(xué)習(xí)Python游戲開發(fā)的實(shí)用教程。
《《Python 游戲開發(fā)從入門到精通》》適合已經(jīng)了解Python語(yǔ)言基礎(chǔ)語(yǔ)法、希望進(jìn)一步提高自己Python開發(fā)水平的讀者閱讀,還可以作為大中專院校相關(guān)專業(yè)和培訓(xùn)學(xué)校師生的學(xué)習(xí)用書。
前言
第1章 使用Python內(nèi)置函數(shù)開發(fā)游戲1
1.1 猜數(shù)游戲1
1.1.1 使用條件語(yǔ)句1
1.1.2 使用for循環(huán)語(yǔ)句2
1.1.3 具體實(shí)現(xiàn)3
1.2 龍的世界5
1.2.1 使用while循環(huán)語(yǔ)句5
1.2.2 使用函數(shù)6
1.2.3 實(shí)現(xiàn)“龍的世界”6
1.3 Hangman游戲8
1.3.1 項(xiàng)目介紹8
1.3.2 具體實(shí)現(xiàn)9
1.4 破解愷撒密碼14
1.4.1 實(shí)例介紹14
1.4.2 具體實(shí)現(xiàn)14
1.5 Reversi黑白棋游戲16
1.5.1 笛卡兒坐標(biāo)系16
1.5.2 實(shí)例介紹17
1.5.3 具體實(shí)現(xiàn)17
第2章 Pygame游戲開發(fā)基礎(chǔ)23
2.1 安裝Pygame23
2.2 Pygame開發(fā)基礎(chǔ)24
2.2.1 Pygame框架中的模塊24
2.2.2 開發(fā)第一個(gè)Pygame程序25
2.3 事件處理27
2.3.1 事件檢索27
2.3.2 處理鼠標(biāo)事件28
2.3.3 處理鍵盤事件30
2.3.4 事件過(guò)濾32
2.3.5 產(chǎn)生事件32
2.4 移動(dòng)的小蘑菇33
第3章 字體、圖形圖像和多媒體35
3.1 顯示模式35
3.1.1 設(shè)置顯示模式35
3.1.2 在全屏顯示模式和非全屏顯示
模式之間進(jìn)行轉(zhuǎn)換36
3.2 設(shè)置字體并顯示文本內(nèi)容36
3.2.1 設(shè)置字體36
3.2.2 使用屬性Rect設(shè)置文本位置38
3.2.3 在游戲窗口中顯示閃爍的文字39
3.3 設(shè)置像素和顏色40
3.3.1 顏色介紹40
3.3.2 設(shè)置透明度42
3.3.3 實(shí)現(xiàn)一個(gè)三原色顏色滑動(dòng)條效果43
3.4 繪制圖像44
3.4.1 使用Surface繪制對(duì)象45
3.4.2 使用pygame.draw繪圖47
3.5 使用動(dòng)畫49
3.5.1 Pygame動(dòng)畫49
3.5.2 幀速率51
3.5.3 多彩小球動(dòng)畫51
3.6 為游戲添加音效53
3.6.1 Pygame聲音53
3.6.2 播放不同的聲音特效54
第4章 Sprite和碰撞檢測(cè)57
4.1 Sprite的概念57
4.2 Pygame中的Sprite58
4.2.1 pygame.sprite模塊中的內(nèi)置方法和變量58
4.2.2 創(chuàng)建第一個(gè)精靈59
4.2.3 創(chuàng)建一個(gè)“古燈籠”精靈60
4.2.4 創(chuàng)建精靈組:3輛賽車60
4.2.5 創(chuàng)建移動(dòng)的精靈組:瘋狂賽車游戲63
4.3 碰撞檢測(cè)65
4.3.1 游戲中的碰撞檢測(cè)66
4.3.2 Pygame中的碰撞檢測(cè)69
4.4 3個(gè)游戲項(xiàng)目75
4.4.1 簡(jiǎn)易跑酷游戲75
4.4.2 吃蘋果游戲79
4.4.3 Pygame官網(wǎng)的坦克大戰(zhàn)游戲82
第5章 使用AI技術(shù)94
5.1 游戲中常用的AI算法94
5.1.1 有限狀態(tài)機(jī)算法94
5.1.2 蒙特卡洛樹搜索算法95
5.1.3 A Star尋路算法96
5.1.4 電勢(shì)矩陣尋路算法97
5.1.5 Dijkstra單源最短路徑搜索算法97
5.2 貪吃蛇游戲97
5.2.1 普通版的貪吃蛇游戲98
5.2.2 AI版的貪吃蛇游戲103
第6章 當(dāng)Python遇到Cocos2d111
6.1 Cocos2d介紹111
6.1.1 Cocos2d的家族成員111
6.1.2 Cocos2d-Python112
6.2 Cocos2d-Python的基本應(yīng)用113
6.2.1 錨點(diǎn)和坐標(biāo)系113
6.2.2 使用Director115
6.2.3 創(chuàng)建層116
6.2.4 使用精靈118
6.2.5 設(shè)置背景音樂(lè)和音效122
6.3 使用事件123
6.3.1 使用鍵盤事件123
6.3.2 使用鼠標(biāo)事件125
6.4 使用菜單128
6.4.1 Cocos2d中的菜單128
6.4.2 使用文本菜單129
6.4.3 使用圖像菜單133
6.5 Cocos2d-Python版本的貪吃蛇游戲134
6.5.1 設(shè)置背景音效135
6.5.2 實(shí)現(xiàn)游戲界面135
第7章 Cocos2d進(jìn)階140
7.1 動(dòng)作、轉(zhuǎn)換和效果140
7.1.1 動(dòng)作140
7.1.2 基本動(dòng)作143
7.1.3 特殊動(dòng)作149
7.1.4 組合和修改動(dòng)作151
7.1.5 Effects155
7.1.6 創(chuàng)建自己的動(dòng)作162
7.2 場(chǎng)景切換164
7.2.1 使用導(dǎo)演實(shí)現(xiàn)場(chǎng)景切換164
7.2.2 使用過(guò)渡動(dòng)畫實(shí)現(xiàn)場(chǎng)景切換166
第8章 Cocos2d高級(jí)應(yīng)用174
8.1 瓦片地圖174
8.1.1 兩種格式174
8.1.2 cell單元格和tile圖塊屬性181
8.1.3 地圖滾動(dòng)182
8.1.4 地圖查詢186
8.2 地圖碰撞器186
8.2.1 地圖碰撞器介紹187
8.2.2 檢測(cè)碰撞的方法188
8.2.3 3種地圖碰撞器188
8.2.4 使用RectMapCollider碰撞器188
8.2.5 使用TmxObjectMapCollider碰撞器191
8.3 CocosNode193
8.3.1 CocosNode的主要功能194
8.3.2 常用的CocosNode子類202
8.4 碰撞處理206
8.4.1 碰撞模型206
8.4.2 基于地圖的碰撞處理207
8.4.3 基于碰撞管理器的碰撞處理210
第9章 使用PyOpenGL開發(fā)3D游戲216
9.1 PyOpenGL基礎(chǔ)知識(shí)介紹216
9.2 OpenGL的內(nèi)置函數(shù)217
9.2.1 創(chuàng)建第一個(gè)PyOpenGL程序217
9.2.2 OpenGL API的常用內(nèi)置函數(shù)218
9.3 繪制基本的圖形220
9.3.1 繪制一條直線220
9.3.2 繪制點(diǎn)線面圖形221
9.3.3 繪制平滑陰影三角形223
9.3.4 繪制平方曲線226
9.4 使用GLFW227
9.4.1 第一個(gè)GLFW程序227
9.4.2 模擬鐘表指針的轉(zhuǎn)動(dòng)228
9.4.3 模擬鐘表指針轉(zhuǎn)動(dòng)的三角形230
9.4.4 使用鍵盤按鍵移動(dòng)三角形232
9.5 開發(fā)一個(gè)3D游戲234
9.5.1 渲染游戲場(chǎng)景和紋理234
9.5.2 監(jiān)聽用戶的鼠標(biāo)和按鍵動(dòng)作236
第10章 使用Panda3D開發(fā)3D游戲239
10.1 Panda3D基礎(chǔ)239
10.1.1 Panda3D的優(yōu)點(diǎn)239
10.1.2 安裝Panda3D240
10.1.3 創(chuàng)建第一個(gè)Panda3D程序243
10.2 Panda3D的內(nèi)置成員244
10.2.1 加載游戲場(chǎng)景244
10.2.2 任務(wù)處理:移動(dòng)3D攝像機(jī)248
10.2.3 使用Actor添加動(dòng)畫模型254
10.2.4 使用間隔和序列257
10.3 開發(fā)常見(jiàn)的3D游戲程序263
10.3.1 迷宮中的小球游戲263
10.3.2 拳擊賽游戲267
第11章 綜合實(shí)戰(zhàn)—AI人機(jī)對(duì)戰(zhàn)版五子棋游戲(Pygame實(shí)現(xiàn))269
11.1 游戲介紹269
11.2 架構(gòu)分析269
11.2.1 五子棋的基本棋型270
11.2.2 功能模塊272
11.3 具體編碼273
11.3.1 設(shè)置基礎(chǔ)參數(shù)273
11.3.2 繪制棋盤273
11.3.3 實(shí)現(xiàn)AI功能275
11.3.4 實(shí)現(xiàn)按鈕功能283
11.3.5 重寫功能285
第12章 綜合實(shí)戰(zhàn)—水果連連看游戲(Cocos2d實(shí)現(xiàn))289
12.1 游戲介紹289
12.2 架構(gòu)分析289
12.2.1 分析游戲規(guī)則290
12.2.2 功能模塊290
12.3 具體編碼291
12.3.1 設(shè)計(jì)HUD291
12.3.2 監(jiān)聽鼠標(biāo)的移動(dòng)293
12.3.3 顯示視圖294
12.3.4 游戲菜單295
12.4 實(shí)現(xiàn)游戲邏輯296
12.4.1 設(shè)置系統(tǒng)參數(shù)296
12.4.2 視圖初始化296
12.4.3 開始游戲的下一關(guān)297
12.4.4 倒計(jì)時(shí)297
12.4.5 設(shè)置隨機(jī)顯示的水果297
12.4.6 碰撞檢測(cè)處理299
12.4.7 進(jìn)度條303
12.4.8 主程序303