商品簡介
名人/編輯推薦
1.為初學者量身打造,非常適合python學習與pygame遊戲開發入門。2.案例趣味性強,涵蓋了多種遊戲類型,寓教於樂。3.提供增值服務,qq群在線支持,以及案例源代碼、遊戲素材等資源下載。4.全彩印刷,精彩呈現python遊戲編程的精髓與要點。
序
Python是當前十分熱門的編程語言,它的應用範圍非常廣泛,除了人工智能、數據分析等領域,它在Web 開發、遊戲開發等領域也非常受歡迎。
隨著相關技術的不斷發展,想開發一款遊戲,對於普通的愛好者來講,已不再是什麼難事了。特別是在遊戲行業大受歡迎的當代,無論是對遊戲編程感興趣的愛好者,還是正在從事遊戲開發的人員,都對遊戲行業有著無限的憧憬。但Python 遊戲開發相關資料十分繁雜,讓很多有志於從事Python遊戲開發的初學者望而卻步,因此,我們特意編寫了本書。
本書內容
全書共分為15章,主要通過“基礎篇(9章) 案例篇(6章)”幫助大家學習和掌握Python 和Pygame的開發技巧,本書具體的學習結構如下圖所示:
本書特色
(1)突出重點、學以致用
書中每個知識點都結合了簡單易懂的示例代碼以及非常詳細的注釋信息,力求使讀者能夠快速理解所學知識,縮短學習路徑,提升學習效率。
(2)提升思維、綜合運用
本書以知識點綜合運用的方式,帶領讀者製作各種趣味性較強的遊戲案例,讓讀者不僅可以不斷提升編寫Python遊戲的思維能力,還可以快速提升對知識點的綜合運用能力,讓讀者能夠回顧以往所學的知識點,並結合新的知識點進行綜合應用。
(3)精彩欄目、貼心提示
本書根據實際學習的需要,設置了“注意”“說明”“技巧”等許多貼心的欄目,可幫助讀者輕鬆理解所學知識。
本書讀者物件
① 對遊戲開發感興趣的編程愛好者;
② 相關培訓機構的老師和學生;
③ 大中專院校的老師和學生;
④ 初中級遊戲開發人員,以及測試和運維人員。
讀者服務
為方便解答讀者在學習本書過程中遇到的疑難問題及提供更多圖書配套資源,我們將提供在線技術指導和社區服務,服務方式如下:
√質量反饋信箱:mingrisoft@mingrisoft.com。
√售後服務電話:4006751066。
√QQ群:337212027。
致讀者
本書由明日科技的Python開發團隊策劃並組織編寫,主要編寫人員有王小科、李磊、高春艷、張鑫、趙寧、周佳星、王國輝、賽奎春、葛忠月、宋萬勇、楊麗、劉媛媛、依瑩瑩等。在編寫本書的過程中,我們本著科學、嚴謹的態度,力求精益求精,但疏漏之處在所難免,敬請廣大讀者批評斧正。
感謝您閱讀本書,希望本書能成為您編程路上的領航者。
祝您讀書快樂!
編者
2024年2月
目次
第1篇 基礎篇
第1章 初識Python和Pygame 001
1.1 了解Python 002
1.1.1 Python概述 002
1.1.2 Python能做什麼 002
1.2 Pygame 簡介 003
1.2.1 Pygame的由來 003
1.2.2 Pygame能做什麼 003
1.2.3 Pygame 常用子模塊介紹 004
1.3 相關工具的下載與環境配置 005
1.4 第一個Pygame程序 005
實例1.1 使用Pygame 模塊顯示“Hello Pygame World” 005
1.5 實戰練習 006
第2章 Pygame 程序開發流程 007
2.1 Pygame 程序開發的基本流程 007
2.1.1 導入Pygame模塊 008
2.1.2 初始化Pygame 008
實例2.1 演示pygame.init()的使用 009
2.1.3 創建Pygame窗口 009
實例2.2 演示Pygame 窗口模式的切換 010
2.1.4 窗口圖像渲染——Surface物件 012
2.1.5 設置遊戲窗口狀態 015
2.2 Pygame 最小開發框架 016
2.3 綜合案例——繪製拼圖遊戲界面 018
2.4 實戰練習 019
第3章 Pygame遊戲開發基礎 020
3.1 像素和pygame.Color物件 020
實例3.1 展示所有顏色 022
3.2 Pygame 中的透明度 023
3.2.1 像素透明度 023
實例3.2 測試像素透明度 024
3.2.2 顏色值透明度 026
實例3.3 測試顏色值透明度 026
3.2.3 圖像透明度 027
3.3 窗口坐標系與pygame.Rect物件 028
3.3.1 窗口坐標系 028
3.3.2 pygame.Rect物件 028
3.4 控制幀速率 029
3.4.1 非精確控制——Clock().tick() 029
3.4.2 精確控制——Clock().tick_busy_loop() 030
3.5 向量在Pygame中的使用 030
3.5.1 向量的介紹 030
3.5.2 向量的使用 031
3.6 三角函數介紹及其使用 032
3.7 pygame.PixelArray物件 034
3.7.1 PixelArray物件概述 035
3.7.2 PixelArray物件常見操作 036
3.7.3 圖像透明化處理 037
實例3.4 轉換圖片為透明格式 037
3.8 Pygame 的錯誤處理 038
3.9 綜合案例——繪製動態太極圖 039
3.10 實戰練習 042
第4章 字體和文字 043
4.1 加載和初始化字體模塊 043
4.1.1 初始化與還原字體模塊 044
4.1.2 獲取可用字體 045
4.1.3 獲取Pygame模塊提供的默認字體文件 045
4.2 Font字體類物件 045
4.2.1 創建Font類物件 046
4.2.2 渲染文本 047
實例4.1 演示文本渲染 048
4.2.3 設置及獲取文本渲染模式 049
4.2.4 獲取文本渲染參數 051
實例4.2 查看文本圖像的參數 052
4.3 綜合案例——繪製“Python 之禪” 053
4.4 實戰練習 058
第5章 事件監聽 059
5.1 理解事件 059
5.2 事件檢索 060
實例5.1 打印輸出所有事件 061
5.3 處理鍵盤事件 063
實例5.2 記錄鍵盤按下鍵字符 064
5.4 處理鼠標事件 066
實例5.3 更換鼠標圖片為畫筆 066
5.5 設備輪詢 068
5.5.1 輪詢鍵盤 068
實例5.4 打字小遊戲 069
5.5.2 輪詢鼠標 070
5.6 事件過濾 071
5.7 自定義事件 071
5.8 綜合案例——擋板接球遊戲 072
5.9 實戰練習 076
第6章 圖形繪製 077
6.1 pygame.draw模塊概述 077
6.2 使用pygame.draw模塊繪製基本圖形 078
6.2.1 繪製線段 078
實例6.1 繪製線段 078
6.2.2 繪製矩形 079
實例6.2 繪製可移動的矩形 080
6.2.3 繪製多邊形 081
實例6.3 繪製南丁格爾圖 081
6.2.4 繪製圓 084
實例6.4 繪製一箭穿心圖案 084
6.2.5 繪製橢圓 087
實例6.5 繪製橢圓 087
6.2.6 繪製弧線 088
實例6.6 繪製WIFI 信號圖 089
6.3 綜合案例——會動的烏龜 090
6.4 實戰練習 093
第7章 位圖圖形 094
7.1 位圖基礎 094
7.2 Surface 物件 095
7.2.1 創建Surface物件 095
7.2.2 拷貝Surface物件 096
7.2.3 修改Surface 物件 097
7.2.4 剪裁Surface區域 097
7.2.5 移動Surface物件 098
實例7.1 通過方向鍵控制Surface物件的移動 098
7.2.6 子表面Subsurface 100
實例7.2 父子Surface之間的共享特性 101
7.2.7 獲取Surface父物件 102
實例7.3 通過人類繼承關係模擬Surface父子物件關係 103
7.2.8 像素訪問與設置 104
7.2.9 尺寸大小與矩形區域管理 105
7.3 Rect 物件 107
7.3.1 創建Rect物件 107
7.3.2 拷貝Rect 物件 109
7.3.3 移動Rect物件 109
7.3.4 縮放Rect物件 110
7.3.5 Rect物件交集運算 111
7.3.6 判斷一個點是否在矩形內 112
7.3.7 兩個矩形間的重疊檢測 112
實例7.4 矩形間的重疊檢測 113
7.4 綜合案例——跳躍的小球 116
7.5 實戰練習 122
第8章 精靈的使用 123
8.1 精靈基礎 124
8.1.1 精靈簡介 124
8.1.2 精靈的創建 124
實例8.1 創建簡單的精靈類 124
8.2 用精靈實現動畫 126
8.2.1 定制精靈序列圖 126
8.2.2 加載精靈序列圖 126
8.2.3 繪製及更新幀圖 128
實例8.2 奔跑的小超人 129
8.3 精靈組 132
8.4 精靈衝突檢測 133
8.4.1 兩個精靈之間的矩形衝突檢測 133
8.4.2 兩個精靈之間的圓衝突檢測 134
8.4.3 兩個精靈之間的像素遮罩衝突檢測 136
8.4.4 精靈和精靈組之間的矩形衝突檢測 137
8.4.5 精靈組之間的矩形衝突檢測 137
8.5 綜合案例——小超人吃蘋果 138
8.6 實戰練習 141
第9章 音頻處理 142
9.1 設備的初始化 142
9.2 聲音的控制 143
9.2.1 加載聲音文件 143
9.2.2 控制聲音流 144
實例9.1 開始播放音樂 146
實例9.2 設置與獲取音樂播放位置 148
實例9.3 自動切換歌曲 150
9.3 管理聲音 152
9.3.1 Sound物件 153
實例9.4 使用Sound物件播放聲音 154
9.3.2 Channel物件 156
實例9.5 音量的分別控制 158
9.4 綜合案例——音樂播放器 161
9.5 實戰練習 166
第2篇 案例篇
第10章 Flappy Bird 167
10.1 案例效果預覽 168
10.2 案例準備 168
10.3 業務流程 169
10.4 實現過程 169
10.4.1 文件夾組織結構 169
10.4.2 搭建主框架 170
10.4.3 創建小鳥類 171
10.4.4 創建管道類 174
10.4.5 計算得分 177
10.4.6 碰撞檢測 178
第11章 瑪麗冒險 181
11.1 案例效果預覽 181
11.2 案例準備 183
11.3 業務流程 183
11.4 實現過程 184
11.4.1 文件夾組織結構 184
11.4.2 遊戲窗體的實現 184
11.4.3 地圖的加載 185
11.4.4 瑪麗的跳躍功能 187
11.4.5 隨機出現的障礙 190
11.4.6 背景音樂的播放與停止 192
11.4.7 碰撞和積分的實現 194
第12章 推箱子遊戲 197
12.1 案例效果預覽 198
12.2 案例準備 199
12.3 業務流程 199
12.4 實現過程 200
12.4.1 文件夾組織結構 200
12.4.2 搭建主框架 200
12.4.3 繪製遊戲地圖 203
12.4.4 用鍵盤控制角色移動 210
12.4.5 判斷遊戲是否通關 215
12.4.6 記錄步數 216
12.4.7 撤銷角色已移動功能 217
12.4.8 重玩此關的實現 219
12.4.9 遊戲進入下一關 220
第13章 飛機大戰 223
13.1 案例效果預覽 223
13.2 案例準備 224
13.3 業務流程 224
13.4 實現過程 225
13.4.1 文件夾組織結構 225
13.4.2 主窗體的實現 225
13.4.3 創建遊戲精靈 227
13.4.4 遊戲核心邏輯 229
13.4.5 遊戲排行榜 233
第14章 智力拼圖 236
14.1 案例效果預覽 237
14.2 案例準備 238
14.3 業務流程 239
14.4 實現過程 240
14.4.1 文件夾組織結構 240
14.4.2 搭建主框架 240
14.4.3 繪製遊戲主窗體 242
14.4.4 移動遊戲空白方格拼圖塊 250
14.4.5 統計空白方格拼圖塊移動步數 254
14.4.6 判斷拼圖是否成功 255
14.4.7 使用csv文件存取遊戲數據 258
14.4.8 繪製遊戲結束窗體 259
第15章 畫圖工具 265
15.1 案例預覽效果 265
15.2 案例準備 266
15.3 業務流程 267
15.4 實現過程 267
15.4.1 文件夾組織結構 267
15.4.2 菜單類設計 268
15.4.3 畫筆類設計 270
15.4.4 窗口繪製類設計 273
15.4.5 畫圖工具主類設計 274
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。















