Python 遊戲開發從入門到精通

張有菊

買這商品的人也買了...

商品描述

《Python 遊戲開發從入門到精通》循序漸進地講解了使用Python語言開發遊戲程序的核心知識,
並通過具體實例的實現過程演練了遊戲開發的方法和流程。
全書共12章,主要內容有使用Python內置函數開發遊戲,Pygame遊戲開發基礎,字體、圖形圖像和多媒體,
Sprite和碰撞檢測,使用AI技術,當Python遇到Cocos2d,Cocos2d進階,Cocos2d高級應用,
使用PyOpenGL開發3D遊戲,使用Panda3D開發3D遊戲,
綜合實戰—AI人機對戰版五子棋遊戲(Pygame實現),綜合實戰—水果連連看遊戲(Cocos2d實現)。
本書簡潔而不失技術深度,內容豐富全面。
以極簡的文字介紹了複雜的案例,是學習Python遊戲開發的實用教程。

《《Python 遊戲開發從入門到精通》》適合已經了解Python語言基礎語法、
希望進一步提高自己Python開發水平的讀者閱讀,
還可以作為大中專院校相關專業和培訓學校師生的學習用書。

目錄大綱

前言
第1章 使用Python內置函數開發遊戲1
1.1 猜數遊戲1
1.1.1 使用條件語句1
1.1.2 使用for循環語句2
1.1.3 具體實現3
1.2 龍的世界5
1.2.1 使用while循環語句5
1.2.2 使用函數6
1.2.3 實現“龍的世界”6
1.3 Hangman遊戲8
1.3.1 項目介紹8
1.3.2 具體實現9
1.4 破解愷撒密碼14
1.4.1 實例介紹14
1.4.2 具體實現14
1.5 Reversi黑白棋遊戲16
1.5.1 笛卡兒坐標系16
1.5.2 實例介紹17
1.5.3 具體實現17

第2章 Pygame遊戲開發基礎23
2.1 安裝Pygame23
2.2 Pygame開發基礎24
2.2.1 Pygame框架中的模塊24
2.2.2 開發第一個Pygame程序25
2.3 事件處理27
2.3.1 事件檢索27
2.3.2 處理鼠標事件28
2.3.3 處理鍵盤事件30
2.3.4 事件過濾32
2.3.5 產生事件32
2.4 移動的小蘑菇33

第3章 字體、圖形圖像和多媒體35
3.1 顯示模式35
3.1.1 設置顯示模式35
3.1.2 在全屏顯示模式和非全屏顯示
模式之間進行轉換36
3.2 設置字體並顯示文本內容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 實現一個三原色顏色滑動條效果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模塊中的內置方法和變量58
4.2.2 創建第一個精靈59
4.2.3 創建一個“古燈籠”精靈60
4.2.4 創建精靈組:3輛賽車60
4.2.5 創建移動的精靈組:瘋狂賽車遊戲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官網的坦克大戰遊戲82

第5章 使用AI技術94
5.1 遊戲中常用的AI算法94
5.1.1 有限狀態機算法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 創建層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 實現遊戲界面135

第7章 Cocos2d進階140
7.1 動作、轉換和效果140
7.1.1 動作140
7.1.2 基本動作143
7.1.3 特殊動作149
7.1.4 組合和修改動作151
7.1.5 Effects155
7.1.6 創建自己的動作162
7.2 場景切換164
7.2.1 使用導演實現場景切換164
7.2.2 使用過渡動畫實現場景切換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開發3D遊戲216
9.1 PyOpenGL基礎知識介紹216
9.2 OpenGL的內置函數217
9.2.1 創建第一個PyOpenGL程序217
9.2.2 OpenGL API的常用內置函數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 模擬鐘錶指針的轉動228
9.4.3 模擬鐘錶指針轉動的三角形230
9.4.4 使用鍵盤按鍵移動三角形232
9.5 開發一個3D遊戲234
9.5.1 渲染遊戲場景和紋理234
9.5.2 監聽用戶的鼠標和按鍵動作236

第10章 使用Panda3D開發3D遊戲239
10.1 Panda3D基礎239
10.1.1 Panda3D的優點239
10.1.2 安裝Panda3D240
10.1.3 創建第一個Panda3D程序243
10.2 Panda3D的內置成員244
10.2.1 加載遊戲場景244
10.2.2 任務處理:移動3D攝像機248
10.2.3 使用Actor添加動畫模型254
10.2.4 使用間隔和序列257
10.3 開發常見的3D遊戲程序263
10.3.1 迷宮中的小球遊戲263
10.3.2 拳擊賽遊戲267

第11章 綜合實戰—AI人機對戰版五子棋遊戲(Pygame實現)269
11.1 遊戲介紹269
11.2 架構分析269
11.2.1 五子棋的基本棋型270
11.2.2 功能模塊272
11.3 具體編碼273
11.3.1 設置基礎參數273
11.3.2 繪製棋盤273
11.3.3 實現AI功能275
11.3.4 實現按鈕功能283
11.3.5 重寫功能285

第12章 綜合實戰—水果連連看遊戲(Cocos2d實現)289
12.1 遊戲介紹289
12.2 架構分析289
12.2.1 分析遊戲規則290
12.2.2 功能模塊290
12.3 具體編碼291
12.3.1 設計HUD291
12.3.2 監聽鼠標的移動293
12.3.3 顯示視圖294
12.3.4 遊戲菜單295
12.4 實現遊戲邏輯296
12.4.1 設置系統參數296
12.4.2 視圖初始化296
12.4.3 開始遊戲的下一關297
12.4.4 倒計時297
12.4.5 設置隨機顯示的水果297
12.4.6 碰撞檢測處理299
12.4.7 進度條303
12.4.8 主程序303