標籤:製作 inux main led 不可變 pil glob 通用 下載
Python和Pygame遊戲開發
目錄
第1章 安裝Python和Pygame 1
1.1 預備知識 1
1.2 下載和安裝Python 1
1.3 Windows下的安裝說明 1
1.4 Mac OS X上的安裝說明 2
1.5 Ubuntu和Linux上的安裝
說明 2
1.6 啟動Python 2
1.7 安裝Pygame 3
1.8 如何閱讀本書 4
1.9 特色的程式 4
1.10 下載圖形檔案和音效檔 4
1.11 行號和空格 4
1.12 圖書中的文本折行 5
1.13 線上檢查代碼 5
1.14 配套網站上的更多資訊 6
第2章 Pygame基礎知識 7
2.1 GUI vs. CLI 7
2.2 使用Pygame的Hello World程式
原始碼 7
2.3 建立一個Pygame程式 8
2.4 遊戲迴圈和遊戲狀態 10
2.5 pygame.event.Event對象 11
2.6 QUIT事件和pygame.quit()
函數 12
2.7 像素座標 13
2.8 關於函數、方法、建構函式和
模組中的函數(及其差別)的
一些提示 13
2.9 Surface對象和視窗 14
2.10 顏色 15
2.11 顏色的透明度 16
2.12 pygame.Color對象 17
2.13 Rect對象 17
2.14 基本的繪製函數 19
2.15 pygame.PixelArray對象 22
2.16 pygame.display.update()函數 22
2.17 動畫 22
2.18 畫面播放速率和pygame.time.Clock
對象 25
2.19 用pygame.image.load()和blit()
繪製映像 26
2.20 字型 26
2.21 消除鋸齒 28
2.22 播放聲音 28
2.23 本章小結 29
第3章 Memory Puzzle遊戲 31
3.1 如何玩Memory Puzzle遊戲 31
3.2 嵌套的for迴圈 31
3.3 Memory Puzzle的原始碼 33
3.4 聲明和匯入 40
3.5 幻數很糟糕 40
3.6 使用assert語句全面檢查 41
3.7 判斷一個數字是偶數還是奇數 42
3.8 較早崩潰和經常崩潰 42
3.9 讓原始碼更好看一些 43
3.10 使用常量變數而不是字串 44
3.11 確保有足夠的表徵圖 44
3.12 元組vs.列表,不可變vs.可變 45
3.13 單項元組需要一個結尾的逗號 46
3.14 在列表和元組之間轉換 46
3.15 global語句以及為什麼全域變數
是罪惡的 47
3.16 資料結構和2D列表 48
3.17 “開始遊戲”動畫 49
3.18 遊戲迴圈 50
3.19 事件處理迴圈 50
3.20 檢查滑鼠游標在哪一個方塊
之上 51
3.21 處理次點擊的方塊 52
3.22 處理不一致的一對表徵圖 53
3.23 處理玩家獲勝 53
3.24 將遊戲狀態繪製到螢幕 54
3.25 建立“揭開的方塊”資料結構 55
3.26 建立遊戲台資料結構:第1步—擷取所有可能的表徵圖 55
3.27 第2步—打亂並截取所有表徵圖
的列表 56
3.28 第3步—將表徵圖放置到遊戲
板上 56
3.29 將一個列表分割為列表的
列表 57
3.30 不同的座標系 58
3.31 從像素座標轉換為方塊座標 59
3.32 繪製表徵圖以及文法糖 59
3.33 擷取遊戲台控制項的表徵圖的形狀和
顏色的文法糖 61
3.34 繪製蓋住的方塊 61
3.35 處理揭開和覆蓋動畫 62
3.36 繪製整個遊戲台 63
3.37 繪製高亮邊框 63
3.38 “開始遊戲”動畫 64
3.39 揭開和蓋住成組的方塊 64
3.40 “遊戲獲勝”動畫 65
3.41 判斷玩家是否已經獲勝 65
3.42 為何要那麼麻煩地使用main()
函數 66
3.43 為什麼要為可讀性操心 67
3.44 本章小結 71
第4章 Slide Puzzle 72
4.1 如何玩Slide Puzzle 72
4.2 Slide Puzzle的原始碼 72
4.3 款遊戲和款相同 80
4.4 設定按鈕 81
4.5 使用愚笨的代碼變聰明 83
4.6 主遊戲迴圈 83
4.7 點擊按鈕 84
4.8 用滑鼠滑動貼片 85
4.9 用鍵盤滑動貼片 85
4.10 使用in操作符實現“等於其中
之一”的技巧 86
4.11 WASD和箭頭按鍵 86
4.12 實際執行貼片滑動 87
4.13 IDLE和終止Pygame程式 87
4.14 檢查特定的事件並且將事件添加
到Pygame的事件隊列 88
4.15 建立遊戲台資料結構 89
4.16 不記錄空白的位置 89
4.17 通過更新遊戲板資料結構來
移動 90
4.18 何時不使用斷言 90
4.19 擷取一次並不是那麼隨機的
移動 91
4.20 將貼片座標轉換為像素座標 92
4.21 將像素座標轉換為遊戲台座標 92
4.22 繪製一個貼片 93
4.23 讓文本顯示在螢幕上 93
4.24 繪製遊戲台 94
4.25 繪製遊戲台的邊框 94
4.26 繪製按鈕 95
4.27 實現貼片滑動動畫 95
4.28 Surface的copy()方法 96
4.29 建立新的謎題 98
4.30 實現遊戲台重設動畫 99
4.31 時間vs.記憶體的權衡 100
4.32 沒人在乎幾個位元組 101
4.33 沒人在乎幾百萬個納秒 101
4.34 本章小結 101
第5章 Simulate 102
5.1 如何玩Simulate遊戲 102
5.2 Simulate的原始碼 102
5.3 常用初始內容 108
5.4 設定按鈕 109
5.5 main()函數 110
5.6 程式中用到的一些局部變數 110
5.7 繪製遊戲台並處理輸入 111
5.8 檢查滑鼠點擊 112
5.9 檢查鍵盤按下 112
5.10 遊戲迴圈的兩種狀態 113
5.11 搞清楚玩家是否按下了正確的
按鈕 113
5.12 新紀元時間 115
5.13 將遊戲台繪製到螢幕 116
5.14 相同的舊的terminate()函數 116
5.15 複用常量變數 117
5.16 實現按鈕閃爍動畫 117
5.17 繪製按鈕 120
5.18 實現背景顏色改變的動畫 120
5.19 遊戲結束動畫 121
5.20 將像素座標轉換為按鈕 122
5.21 顯式比隱式好 123
第6章 Wormy 125
6.1 Wormy遊戲的玩法 125
6.2 Wormy的原始碼 125
6.3 柵格 131
6.4 設定代碼 131
6.5 main()函數 132
6.6 單獨的runGame()函數 133
6.7 事件處理迴圈 134
6.8 碰撞檢測 134
6.9 檢測和蘋果的碰撞 135
6.10 移動蟲子 136
6.11 insert()列表方法 136
6.12 繪製螢幕 137
6.13 在螢幕上繪製“Press a key”
文本 137
6.14 checkForKeyPress()函數 137
6.15 啟動顯示畫面 138
6.16 旋轉啟動顯示畫面文本 139
6.17 旋轉並不 140
6.18 決定蘋果出現在哪裡 141
6.19 遊戲結束螢幕 141
6.20 繪製函數 142
6.21 不要複用變數名 144
第7章 Tetromino 146
7.1 一些Tetromino術語 146
7.2 Tetromino的原始碼 147
7.3 常用設定代碼 159
7.4 設定按下鍵的定時常量 159
7.5 更多的設定代碼 160
7.6 設定磚塊模式 161
7.7 將“一行代碼”分隔到多行 164
7.8 main()函數 165
7.9 開始新的遊戲 166
7.10 遊戲迴圈 167
7.11 事件處理迴圈 167
7.12 暫停遊戲 167
7.13 使用移動變數來處理使用者輸入 168
7.14 檢查移動或旋轉是否有效 168
7.15 找到底部 171
7.16 通過按下按鍵來移動 172
7.17 讓磚塊“自然”落下 174
7.18 將所有內容繪製到螢幕上 175
7.19 製作文本的快捷函數
makeTextObjs() 176
7.20 相同的舊的terminate()函數 176
7.21 使用checkForKeyPress()函數等
待按鍵事件 176
7.22 通用文本螢幕函數
showTextScreen() 177
7.23 checkForQuit()函數 178
7.24 calculateLevelAndFallFreq()
函數 178
7.25 用函數getNewPiece()產生新的
磚塊 180
7.26 給遊戲台資料結構添加磚塊 181
7.27 建立一個新的遊戲台資料
結構 181
7.28 isOnBoard()和isValidPosition()
函數 182
7.29 檢查、刪除和填滿一行 184
7.30 將遊戲台座標轉換為像素座標 186
7.31 在遊戲台上或螢幕上的其他位置
繪製方塊 187
7.32 將所有內容繪製到螢幕上 187
7.33 繪製得分和關卡文本 188
7.34 在遊戲台上或螢幕的其他位置
繪製一個磚塊 188
7.35 繪製“Next”磚塊 189
7.36 本章小結 189
第8章 Squirrel Eat Squirrel 191
8.1 如何玩Squirrel Eat Squirrel 191
8.2 Squirrel Eat Squirrel的設計 191
8.3 Squirrel Eat Squirrel的原始碼 192
8.4 常用設定代碼 202
8.5 描述資料結構 203
8.6 main()函數 204
8.7 pygame.transform.flip()函數 205
8.8 更為詳細的遊戲狀態 205
8.9 常用的文本建立代碼 206
8.10 相機 206
8.11 “即時區域” 208
8.12 記錄遊戲世界中的物體的位置 208
8.13 從一些草開始 209
8.14 遊戲迴圈 209
8.15 檢查去掉保護狀態 209
8.16 移動敵人松鼠 210
8.17 刪除較遠的草對象和松鼠
對象 211
8.18 當從列表中刪除項的時候,
反向遍曆列表 211
8.19 添加新的草對象和松鼠對象 213
8.20 相機延遲以及移動相機視圖 213
8.21 繪製背景、草、松鼠和生命值
指示 214
8.22 事件處理迴圈 216
8.23 移動玩家並考慮跳動 218
8.24 碰撞檢測:吃或被吃 219
8.25 遊戲結束螢幕 221
8.26 獲勝 221
8.27 繪製圖形化的生命值指標 221
8.28 相同的舊的terminate()函數 222
8.29 正弦函數 222
8.30 對Python 2的向後相容 225
8.31 getRandomVelocity()函數 226
8.32 找到一個地方添加新的松鼠
和草 226
8.33 建立敵人松鼠資料結構 228
8.34 翻轉松鼠映像 228
8.35 建立草資料結構 229
8.36 檢查是否在即時區域之外 229
8.37 本章小結 230
第9章 Star Pusher 231
9.1 如何玩Star Pusher 231
9.2 Star Pusher的原始碼 232
9.3 初始化設定 245
9.4 Star Pusher中的資料結構 259
9.5 讀取和寫入文字檔 260
9.6 遞迴函式 268
9.7 棧溢出 269
9.8 使用基本條件防止棧溢出 271
9.9 漫水填充演算法 271
9.10 繪製地圖 273
9.11 檢查關卡是否完成 275
9.12 本章小結 276
第10章 4款其他遊戲 277
10.1 Flippy,Othello的翻版 277
10.2 Flippy的原始碼 279
10.3 Ink Spill,Flood It遊戲的
翻版 291
10.4 Ink Spill的原始碼 292
10.5 Four-In-A-Row,Connect Four
的翻版 303
10.6 Four-In-A-Row的原始碼 304
10.7 Gemgem,Bejeweled的翻版 312
10.8 Gemgem的原始碼 313
10.9 本章小結 326
術語表 328
:https://pan.baidu.com/s/17i0-_USHUjEgRaY7DHe9yw
關注公眾號擷取提取碼:
輸入:pypg 擷取提取碼
標籤: Unity 3D網路遊戲實戰(全), Unity 3D網路遊戲實戰(全)pdf
Python和Pygame遊戲開發 pdf