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