用 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 帳號https://github.com/aleroddepaz 裡找到這些專案。
Joseph Howse 是一位作家,軟體開發者以及企業家,來自加拿大諾瓦斯科西亞省的省會,哈利法克斯。他對於學習電腦遊戲及程式碼最早的回憶,是他和哥哥Sam 一起閱讀以及玩文字冒險遊戲,並看他如何用BASIC 畫圖。