|
用Python開發經典遊戲
|
|
Python Game Programming By Example |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python是一門易於編寫、高度彈性且使用廣泛的高階程式語言,它的友善性讓初學者無須付出過多的努力及訓練,即能夠編寫出各式型態的電玩遊戲。在多數情況下,運用已知的使用案例,便能夠免除程式碼的繁雜性,使遊戲開發成為可易於實現的目標。
本書將指引讀者開發出酷炫的遊戲,卻無須對Python程式語言有極其深入的瞭解。內容包含了遊戲設計的技巧,以及一些常見遊戲的實作,例如打磚塊及塔防遊戲等。在此之後,還會逐步增加遊戲的複雜性,使其更富有樂趣且更貼近實務。
透過本書,你會習得Chipmunk2D、cocos2d及Tkinter等GUI函式庫的操作技巧,藉此豐富你的開發技能,以便應付日後的各式挑戰。
適用讀者
如果你期望運用Python程式語言來開發休閒遊戲,並想要瞭解更多關於Python程式語言的各式GUI技術,那麼本書正是為你而生的。你不需要預先對Python及遊戲設計概念有很深入的瞭解。
你能夠從本書學習到
●透過Python的簡潔語法高效地製作出電玩遊戲。
●運用各式框架來開發圖形化應用程式。
●實作具備自動化與人工智慧的非玩家角色(NPC)。
●設計並編寫諸如打磚塊及塔防等常見的遊戲類型。
●以簡易方式在2D遊戲中組建地圖及關卡。
●實現模組化及物件導向的遊戲設計。
●利用諸如Chipmunk2D、cocos2d及Tkinter等函式庫。
●藉由攝影機與電腦視覺演算法,來解讀玩家在真實世界中的動作,以此建置自然使用者介面(NUI)。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目錄
第 1 章:Hello, Pong ! 打磚塊
安裝Python
打磚塊概述
基本GUI 佈置
深入畫布小工具
基本遊戲物件
Ball 類別
Paddle 類別
Brick 類別
增加打磚塊項目
移動及碰撞
開始遊戲
遊玩打磚塊
結語
第 2 章:太空侵略者
安裝cocos2d
開始使用cocos2d
處理使用者輸入
更新場景
處理碰撞
建立遊戲資產
太空侵略者設計
PlayerCannon 及GameLayer 類別
侵略者!
射擊!
新增頭戴顯示器
額外功能 –– 神祕飛船
結語
第 3 章:建立一個塔防遊戲
塔防遊戲玩法
Cosos2d 動作
間隔動作
瞬時動作
合併行為
客製動作
增加主選單
磚塊地圖
磚塊地圖編輯器
載入磚塊
劇本定義
scenario 類別
場景之間轉場
遊戲結束過場場景
塔防actors
砲塔及槽
敵人
碉堡
遊戲場景
HUD類別
組裝場景
結語
第 4 章:操控行為
NumPy 安裝
ParticleSystem類別
快速展示
實作操控行為
靠近及離開
抵達
追逐及逃避
徘徊
迴避障礙
萬有引力遊戲
基本遊戲物件
星球與拾取物
玩家及敵人
爆炸
遊戲圖層
結語
第 5 章:Pygame 以及 3D
安裝套件
從OpenGL 開始
初始化視窗
繪製外形
執行demo
重構OpenGL 程式
處理使用者輸入
增加Pygame 函式庫
Pygame 101
Pygame 整合
OpenGL 繪圖
方塊類別
啟動面剔除
基本碰撞偵測遊戲
結語
第 6 章:PyPlatformer
遊戲設計介紹
關卡設計
平台技巧
以元件為基礎的遊戲引擎
Pymunk 介紹
建立遊戲框架
加入物理
可渲染的元件
攝影機元件
InputManager 模組
Game 類別
開發PyPlatformer
建立平台
加入拾取物
射擊!
玩家類別及其元件
PyPlatformer 類別
結語
第 7 章:用電腦視覺來擴增桌上遊戲
規劃西洋棋程式
設定OpenCV 及其他相依套件
Windows
Mac
Debian 及其套件,包括Raspbian、Ubuntu 及Linux Mint
Fedora 及其套件,包括RHEL 及CentOS
OpenSUSE 及其套件
支援不同版本的OpenCV
設定攝影機
處理顏色
建立分析器
提供影像存取及分類結果
提供參數存取給使用者設定
初始化遊戲所有模組
更新遊戲的整個模組
擷取及轉換影像
偵測棋盤角落及追蹤它們的動作
建立及分析棋盤的俯視圖
分析方格內主要色彩
分類方格內容
繪製文字
轉換OpenCV 影像給wxPython
建立GUI 程式
建立視窗及綁定事件
在GUI 中建立及佈置影像
建立及佈置控制項
巢狀佈置及設定根佈置
開始背景執行緒
關閉視窗及停止背景執行緒
基於使用者輸入設定分析器
更新及顯示影像
運行程式
實際操作環境的專案除錯
進一步深入OpenCV
結語 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
作者簡介
Alejandro Rodas de Paz
是一位來自西班牙. 塞維利亞的電腦工程師及遊戲開發者。他2009 年在塞維利亞的大學就讀時,偶然遇見了Python。Alejandro 用Python 開發了幾項專案,從網路爬蟲到人工智慧演算法。在閒暇之餘,他開始用Python 製作自己的遊戲。他在阿姆斯特丹國際大學副修遊戲設計,在那裡他用副修所學,製作了一個小型的遊戲引擊。他也開發了一些開源專案,像是為Philips Hue 個人照明系統設計了Python API。你可以在他的GitHub 帳號github.com/aleroddepaz 裡找到這些專案
Joseph Howse
是一位作家,軟體開發者以及企業家,來自加拿大諾瓦斯科西亞省的省會,哈利法克斯。他對於學習電腦遊戲及程式碼最早的回憶,是他和哥哥Sam 一起閱讀以及玩文字冒險遊戲,並看他如何用BASIC 畫圖。 |
|
|
|
|
|
|
|
|
|
|
|