-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

零基礎入門Python游戲

( 簡體 字)
作者:車洪類別:1. -> 程式設計 -> Python
譯者:
出版社:清華大學出版社零基礎入門Python游戲 3dWoo書號: 53466
詢問書籍請說出此書號!

有庫存
NT售價: 395

出版日:8/1/2020
頁數:374
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302553359
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

1. 創作起因
在編寫本書之前,筆者熱衷于在網絡上做技術分享,曾經發布過許多教程。由于一次“線上游戲編程”課程的機緣,清華大學出版社的編輯聯系到了我,詢問我能否編寫一本以Python游戲編程為主題的書籍。由于筆者酷愛技術,同時熱衷于分享,于是便欣然接受了這次頗為珍貴的邀請,并借此機會實現自己多年以來的寫書夢。
為什么要寫游戲編程?
相信許多編程初學者都有這樣的困惑: 編程語言的語法太枯燥、太抽象了,根本不明白它們到底該怎么用;學了這么久還是停留在Hello World的初級階段,太沒意思了;到底有沒有方法可以讓編程變得簡單、有趣、更容易上手?有啊,那就是從游戲編程開始!提到游戲編程,可能有讀者會問: 游戲太難了吧,目前我還只是一個“菜鳥”,開發游戲對我來說是不是太早了?別把事情想得太復雜,《王者榮耀》是游戲,《俄羅斯方塊》也是游戲,游戲有大有小,有的復雜,有的簡單。學習編程可以從簡單的小游戲開始,寓學于樂,樂趣使人進步,只有做感興趣的事情,才可以讓我們把對未知領域的恐懼轉化為濃厚的興趣與源源不斷的動力,從而提高學習效率。
為什么選擇Python?
隨著人工智能、機器學習與數據分析的持續升溫,業界內的眾多領域都掀起了一陣Python學習之風。目前,Python已經成為繼Java與C語言后第三大熱門的編程語言,無數追隨者都開始學習與使用這門“新興”且“古老”的編程語言。“Life is short,you need Python”這句話似段子,又似箴言,鞭策著無數在Python學習道路上前行的人。作為一名資深C語言編程人員,筆者差不多在兩年前開始關注Python,并很快被這門簡約、高效、優雅的編程語言所吸引。也許會有讀者不相信,從開始學習Python到完成本書的三大示例程序,筆者僅花費了一個月的時間。在這一個月內,筆者每天僅是抽出約兩個小時的時間做這件事。由此可見,Python非常簡單和易于上手,適合初學者作為第一門編程語言進行學習,這就是本書選擇使用Python語言介紹游戲編程的原因。
為什么側重于Cocos2d?
在尋找支持游戲的第三方Python庫的過程中,筆者發現目前市面上的幾乎所有Python游戲教程都是針對Pygame的,還沒有使用Cocos2d編寫Python游戲的書籍,甚至連中文譯本都難覓,國外也很少有關于Cocos2d Python的書籍。除此之外,在對比了幾大常用Python 2D游戲庫后,筆者發現無論是功能、效果還是難易程度,Cocos2d都領先于其他2D游戲庫,更加符合現代游戲的開發理念。因此,筆者非常想編寫一本有關Cocos2d Python的系統教程,從而讓更多的人認識、了解與使用Cocos2d這個充滿魅力的游戲框架。不過,作為一本通用的Python游戲編程書籍,本書還是會簡單介紹Pygame。
2. 讀者對象
本書的讀者對象有以下幾類。
(1) 希望通過一些項目強化自身Python編程能力的人,本書提供了豐富的示例,可供讀者參考和學習。
(2) 希望了解如何使用Python編寫游戲程序的人,本書會介紹一些常用的Python 2D游戲庫,并舉例說明如何利用這些游戲庫一步步地構建Python游戲程序。
(3) 希望系統學習Cocos2d Python的人,本書是目前國內唯一一本詳細介紹Cocos2d Python的書籍。
(4) 所有對Python游戲編程感興趣的人。
學習本書要求讀者具備一定的Python語法基礎。但是不用擔心,本書并不要求讀者一定是Python大師,哪怕你只是剛剛開始學習Python基礎語法的新手,你也可以輕松地閱讀本書。對,Python就是這么簡單!
零基礎入門Python游戲前言3. 本書內容
本書將介紹如何利用Python語言編寫2D小游戲,并會對涉及的Python游戲庫——Pygame與Cocos2d進行詳細講解,包括其理論和大量示例代碼。尤其是Cocos2d,本書會系統性地對其進行介紹,以彌補目前市面上關于Cocos2d Python的教程較少的遺憾。
本著“多練習,多動手”的原則,作為一本“不枯燥”的技術書籍,本書給出了大量示例程序,以供讀者玩耍(參考)。在講解理論知識后,本書會給出或大或小的示例代碼,用來幫助讀者鞏固所學的理論,進而讓讀者快速上手Python游戲開發。另外,本書將通過“理論+實戰”的方式帶領讀者實現三個相對完整的經典游戲項目,分別是《飛機大戰》《俄羅斯方塊》《超級馬里奧》。除此之外,所有理論知識部分都會穿插許多小示例程序。
本書共分為7章和1個附錄。
第1章對Python游戲開發的背景進行介紹,講解如何搭建Python游戲的開發環境,為后續章節做鋪墊。
第2章簡要介紹Pygame的常用理論知識,通過示例程序講解如何使用Pygame開發游戲。
第3章介紹第一個實例項目——《飛機大戰》游戲,并利用第2章中的Pygame理論一步步地開發這個游戲。
第4章介紹Cocos2d理論知識的基礎部分,包括Cocos2d的搭建、安裝以及示例程序。
第5章介紹第二個實例項目——《俄羅斯方塊》游戲,利用第4章中的Cocos2d基礎理論知識一步步地開發這個游戲。
第6章介紹Cocos2d理論知識的高級部分,包括沖突檢測、地圖、動畫、粒子系統等,并給出許多示例程序,以供讀者參考。
第7章介紹第三個實例項目——《超級馬里奧》游戲,利用第6章中的Cocos2d高級特性一步步地開發這個游戲。
附錄提供本書所有示例程序的源代碼下載地址、相關工具和網絡資源。
其中,第4章與第6章的內容合在一起將組成Cocos2d Python幾乎全部的理論體系。
4. 如何閱讀本書
總體來說,本書包括兩大部分。
第一部分為第2章和第3章,該部分介紹Pygame以及如何利用Pygame開發《飛機大戰》游戲。
第二部分為第4章至第7章,該部分介紹Cocos2d以及如何利用Cocos2d開發《俄羅斯方塊》游戲與《超級馬里奧》游戲。
以上兩部分的關聯度不高,讀者可以分開閱讀。對Pygame感興趣的讀者可以只閱讀本書的第一部分;對Cocos2d感興趣的讀者可以只閱讀本書的第二部分。當然,如果你對Pygame和Cocos2d均感興趣,則可以通讀全書,從而擴充自己在此領域的知識儲備。
孔子曰: “學而不思則罔,思而不學則殆。”本書給出大量示例程序的目的是讓讀者多動手、勤練習,在實踐中不斷思考,從而更加靈活地運用所學的知識。因此,在閱讀本書時,筆者強烈建議讀者時刻跟隨教學的節奏,從搭建開發環境開始,把書中的所有示例程序,尤其是三個實例項目都自己實現一遍。如果遇到難以理解的部分,則可以在附錄中下載相應示例程序的源代碼,進行參考與比對。當然,示例程序只是實現功能的方式之一,讀者也可以將自己的思維發散,在示例程序的基礎上進行改進,從而讓自己的程序更加完美。
除此之外,本書也可以作為Pygame與Cocos2d的工具書。本書對Pygame的常用部分以及Cocos2d的絕大部分內容都進行了詳細介紹。
5. 本書特色
(1) “理論+實戰”往復循環。
講解一個“理論”后,就會有一個“實戰”項目等著你,以此往復循環,快速提高讀者的實力。
(2) 三個經典游戲項目。
本書詳細介紹《飛機大戰》《俄羅斯方塊》《超級馬里奧》這三個經典游戲項目的開發過程。
(3) 大量示例程序。
本書給出大量示例程序,其源代碼均可下載。
(4) 關于Cocos2d Python的系統性書籍。
國內第一本介紹Cocos2d Python的系統性書籍,本書涵蓋Cocos2d Python的幾乎全部理論體系。
(5) 詳細介紹Pygame的常用模塊。
關于Pygame的內容幾乎涵蓋其所有常用部分,憑借這些知識,讀者可以輕而易舉地創建一些普通的Pygame小游戲。
(6) 開發環境的普適性。
提供的所有示例程序均基于Python 3.8.0版本,并使用目前流行的PyCharm作為IDE,且所有代碼在Linux、Windows、macOS系統上均已測試通過。
6. 勘誤與支持
由于筆者水平有限,書中難免存在疏漏或不妥之處,懇請讀者給予理解、批評和指正。
此外,讀者也可以關注筆者的GitHub主頁(請掃描下方二維碼),筆者會及時就本書示例代碼中存在的問題進行更新。同時,歡迎廣大讀者參與本書示例程序的建設,對于代碼中存在的問題及有待改進或完善的地方,均可以在對應的代碼倉庫中提出Issues或Pull requests。
最后,期待收到并真誠感謝讀者的反饋。

筆者2020年6月
筆者的GitHub主頁
內容簡介:

本書內容主要介紹如何基于最新的 Python 3.6 版本開發小游戲,全書分為 4 個相對獨立的小游戲,難度上由淺入深。每一章節介紹一個游戲的完整開發過程,包括游戲介紹、文字說明、代碼實現。同時,本書還會穿插對現有常用 Python 游戲第三方模塊的介紹。本書語言活潑、形式新穎、寓教于樂,是一本可以讓讀者邊玩邊學的編程入門級科普書。
目錄:

第1章起步1
1.1用Python編寫游戲1
1.1.1Python能否編寫游戲程序1
1.1.2Python能夠編寫的游戲類型1
1.1.3Python游戲的性能1
1.1.4使用Python編寫游戲2
1.1.5Pygame和Cocos2d2
1.2搭建開發環境4
1.2.1安裝Python4
1.2.2安裝PyCharm9
1.2.3配置虛擬環境13
1.3小結14
第2章Pygame16
2.1Pygame簡介16
2.2Pygame的安裝16
2.3HelloWorld18
2.4基本概念20
2.5窗口管理21
2.6Surface對象23
2.7圖片加載26
2.8圖形繪制26
2.9文字顯示31
2.10再議屏幕顯示35
2.11Rect對象37
2.12事件處理42
2.13Sprite52
2.14碰撞檢測57
2.15音效與音樂60
2.16小結64
第3章《飛機大戰》游戲66
3.1項目介紹66
3.2項目規劃68
3.3記錄狀態70
3.4游戲窗口71
3.5游戲循環72
3.5.1事件檢測處理73
3.5.2狀態更新74
3.5.3碰撞檢測處理75
3.5.4屏幕繪制76
3.6加載圖片77
3.7背景79
3.8我方飛機82
3.9子彈85
3.10敵方飛機87
3.11按鈕96
3.12小部件98
3.12.1Logo98
3.12.2記分牌100
3.12.3“暫停/恢復”按鈕101
3.12.4游戲結束提示框104
3.13音樂與音效106
3.14異常處理109
3.15小結112
零基礎入門Python游戲目錄第4章Cocos2dⅠ113
4.1Cocos2d簡介113
4.2Cocos2d的安裝113
4.3HelloWorld115
4.3.1HelloWorld115
4.3.2HelloActions118
4.3.3HelloEvents121
4.4基本概念125
4.5坐標系127
4.6director129
4.7CocosNode131
4.7.1方法及屬性131
4.7.2常見派生類136
4.7.3自定義派生類137
4.8Scene138
4.8.1常見派生類138
4.8.2使用方法138
4.8.3錨點與位置143
4.9Layer145
4.9.1常見派生類145
4.9.2使用方法146
4.9.3錨點與位置148
4.10Sprite150
4.10.1方法及屬性150
4.10.2使用方法153
4.10.3錨點與位置155
4.11Menu156
4.11.1相關的類156
4.11.2簡單菜單157
4.11.3多重菜單161
4.12Action和Effect165
4.12.1Action165
4.12.2Effect169
4.13小結175
第5章《俄羅斯方塊》游戲176
5.1項目介紹176
5.2項目規劃179
5.3游戲窗口與菜單場景182
5.4背景183
5.5菜單動畫185
5.6菜單187
5.7參數設置190
5.8游戲場景191
5.9HUD192
5.10記錄狀態195
5.11參數設置與狀態更新196
5.12游戲區域200
5.13棋盤201
5.14方塊205
5.15游戲主體控制215
5.15.1創建棋盤215
5.15.2繪制棋盤215
5.15.3創建方塊216
5.15.4繪制方塊217
5.15.5方塊移動/旋轉/下落218
5.15.6方塊定時下落220
5.15.7方塊著陸221
5.15.8游戲結束222
5.15.9游戲通關224
5.16異常處理225
5.17小結227
第6章Cocos2dⅡ228
6.1Collision228
6.1.1原理228
6.1.2代碼229
6.1.3《貓吃老鼠》游戲235
6.2Tiledmaps239
6.2.1文件結構239
6.2.2制作地圖241
6.2.3在代碼中訪問246
6.2.4小球掉落(一)253
6.3MapColliders256
6.3.1原理256
6.3.2代碼258
6.3.3小球落掉(二)262
6.4自定義Action264
6.4.1Action類264
6.4.2自定義一般Action265
6.4.3自定義InstantAction266
6.4.4自定義IntervalAction267
6.5自定義Event267
6.5.1Event268
6.5.2預定義Event268
6.5.3自定義Event269
6.6圖片集272
6.6.1圖片集簡介272
6.6.2圖片分割272
6.6.3示例274
6.7動畫275
6.7.1動畫簡介276
6.7.2幀動畫277
6.7.3示例278
6.8聲音280
6.8.1音效280
6.8.2背景音樂281
6.9ParticleSystem283
6.9.1使用ParticleSystem283
6.9.2自定義ParticleSystem285
6.10小結289
第7章《超級馬里奧》游戲290
7.1項目介紹290
7.2項目規劃293
7.3游戲窗口與菜單場景296
7.4菜單背景297
7.5菜單299
7.6記錄狀態301
7.7HUD302
7.8提示場景304
7.9提示層306
7.10編輯地圖308
7.11游戲場景315
7.12閃爍磚塊316
7.13圖片分割與動畫效果318
7.14角色劃分324
7.14.1Actor325
7.14.2Mario326
7.14.3Enemy327
7.14.4Prop328
7.14.5Cliff328
7.14.6Coin329
7.14.7Flag330
7.14.8Brick330
7.15角色移動332
7.15.1敵人移動332
7.15.2道具移動334
7.15.3馬里奧移動336
7.16游戲主體控制341
7.16.1定義游戲層341
7.16.2創建游戲角色341
7.16.3主循環343
7.16.4創建敵人344
7.16.5更新計時器346
7.16.6游戲結束346
7.16.7游戲通關348
7.16.8碰撞檢測353
7.16.9碰到地圖障礙物354
7.16.10碰到Sprite對象360
7.17音樂與音效366
7.18異常處理371
7.19小結374
附錄示例代碼、相關工具及網絡資源375
后記376
參考文獻377
序: