兒童禮物書展
Python遊戲開發(PyGame基礎篇)

Python遊戲開發(PyGame基礎篇)

Python Game Programming(An Introduction to PyGame)

  • 定價:650
  • 優惠價:79513
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 台北、新北、基隆宅配快速到貨(除外地區)
載入中...
  • 分享
 

內容簡介

  本書是『遊戲設計與開發系列』的第一本書,主要教導新手與初階使用者之讀者熟悉使用Python進行程式開發,配合Pygame套件進入遊戲設計與開發的實際應用,主要目的是提供初學者可以一步一步安裝好Python程式開發環境,安裝與設定Pygame套件的遊戲開發與設定等等。

  目前已經有許多Pygame遊戲開發的網路教學影片與許多文章與討論,由於Pygame遊戲開發充分使用到Python物件導向程式設計與開發的許多技巧,對於學習高階的Python物件導向程式攥寫有許多助益,PyGame是一個用於開發2D遊戲的Python套件模組,它為遊戲開發者提供了簡單易用的API。

  PyGame這個套件建立在SDL(Simple Direct Media Layer)之上,並且能夠處理多種多媒體任務,如音頻、視覺效果、輸入控制等,適合用來創建遊戲、模擬器或其他多媒體應用,雖然目前遊戲設計與開發仍是以C與C++語言為主,但是由於C與C++語言入門雖不難,但是要深入C與C++語言後,可以進行遊戲開發,其門檻對許多專業程式開發人員仍然需要多年的訓練與多年不懈的努力才能有基本遊戲開發的程式攥寫技能,然而遊戲設計除了開發工具熟悉與專業之外,對於遊戲設計的領域知識與獨門技巧,尤其對於圖片、影音、人機介面操控與遊戲繪圖時脈與禎數整合與各種程序分時多工的設計技巧,更是C與C++語言之更深入的高階技巧,致使使用C與C++語言開發遊戲成為及少數專業程式開發人員可以進入的領域。

  本書是Python之Pygame遊戲設計中基礎入門書,後續筆者會針對不同遊戲,單獨針對每一種不同類型與獨特的遊戲開發例子,會獨立設計專書來帶領讀者進入遊戲專業開發的殿堂。
 
 

作者介紹

作者簡介

曹永忠 (Yung-Chung Tsao)


  國立中央大學資訊管理學系博士,目前在國立暨南國際大學電機工程學系兼任助理教授、國立高雄大學電機工程學系兼任助理教授,專注於軟體工程、軟體開發與設計、物件導向程式設計、物聯網系統開發、Arduino開發、嵌入式系統開發。長期投入資訊系統設計與開發、企業應用系統開發、軟體工程、物聯網系統開發、軟硬體技術整合等領域,並持續發表作品及相關專業著作。

  並通過台灣圖霸的專家認證。
  目前也透過Youtube在直播平臺www.youtube.com/@dr.ultima/streams,不定期分享系統設計開發的經驗、技術與資訊工具、技術使用的經驗

  Email:prgbruce@gmail.com
  Line ID:dr.brucetsao
  WeChat:dr_brucetsao
  作者網站:ncnu.arduino.org.tw/brucetsao/myprofile.php
  臉書社群(Arduino.Taiwan):https://www.facebook.com/groups/Arduino.Taiwan/
  Github網站:github.com/brucetsao/
  原始碼網址:github.com/brucetsao/CloudingDesign
  直播平檯www.youtube.com/@dr.ultima/streams:

蔡英德 (Yin-Te Tsai)

  國立清華大學資訊科學系博士,目前是靜宜大學資訊傳播工程學系教授、靜宜大學資訊學院院長,主要研究為演算法設計與分析、生物資訊、軟體開發、視障輔具設計與開發。
  Email:yttsai@pu.edu.tw
  作者網頁:www.csce.pu.edu.tw/people/bio.php?PID=6#personal_writing

許智誠 (Chih-Cheng Hsu)

  美國加州大學洛杉磯分校(UCLA) 資訊工程系博士,曾任職於美國IBM等軟體公司多年,現任教於中央大學資訊管理學系專任副教授,主要研究為軟體工程、設計流程與自動化、數位教學、雲端裝置、多層式網頁系統、系統整合、金融資料探勘、Python建置(金融)資料探勘系統。
  Email: khsu@mgt.ncu.edu.tw
  作者網頁:www.mgt.ncu.edu.tw/~khsu/
 
 

目錄

自序
自序
自序
目錄
圖目錄
表目錄
遊戲設計與開發系列
Python 介紹
Python 起源與創始
發展階段
近期發展
現代發展
關鍵特性
主要用途
內建常數
Python 內建函式
Python 編譯器安裝
測試Python 是否安裝成功
安裝PyCharm 整合工具安裝
測試PyCharm 是否安裝成功
建立開發基本專案環境
安裝套件
Python 環境安裝PyGame 套件
Python 環境安裝cocos2d 套件
Python 環境安裝numpy 套件
PyCharm環境安裝PyGame套件
章節小結
PyGame基本介紹
如何使用PyGame套件
如何建立繪圖視窗介面
設定視窗介面屬性
建立視窗大小
建立視窗背景顏色
透過畫布建立視窗背景顏色
pygame.display相關函式介紹
使用圖片繪製視窗背景
載入圖片
繪製圖片到視窗
繪製文字到視窗背景
系統字型
載入系統字型
載入字型
設定字型屬性
產生字型內容
繪製文字內容到視窗上
產生結束圖示與正確離開系統
缺乏結束程序產生之系統錯誤
捕抓所有滑鼠相關動作引發的事件
判斷是否是按下系統結束按鈕
確認常在狀態與系統離開狀態
章節小結
PyGame 繪圖功能介紹
Surface 對象:
基本繪圖功能
處理顏色
渲染圖像
繪製文字
更新顯示
性能優化
如何繪製線條
建立與視窗大小一致畫布
直接在pygame 視窗繪製X 的直線
直接在pygame 視窗繪製一個格盤
如何繪製矩形
建立與視窗大小一致畫布
直接在pygame 視窗繪製三分之一的矩形框
直接在pygame 視窗繪製連續縮小的矩形框
如何繪製圓形
建立與視窗大小一致畫布
直接在pygame 視窗繪製中心圓形框
直接在pygame 視窗繪製連續縮小的圓形框
如何繪製橢圓形
建立與視窗大小一致畫布
直接在pygame 視窗繪製中心橢圓形框
直接在pygame 視窗繪製連續縮小的橢圓形框
如何繪製圓弧
建立與視窗大小一致畫布
直接在pygame視窗繪製10個20分之一的弧形框
直接在pygame視窗繪製連續縮小的弧形框
如何繪製多邊形
建立與視窗大小一致畫布
直接在pygame視窗繪製四邊形之多邊形框
直接在pygame視窗繪製連續縮小的矩形框
章節小結
PyGame精靈功能介紹
如何使用PyGame套件
如何建立繪圖視窗介面
設定視窗介面屬性
建立視窗大小
建立視窗背景顏色
透過畫布建立視窗背景顏色
建立一個基本Sprite 物件
Pygame 中的 Sprite 類別
Sprite 的基本特性
Sprite 的基本操作
Group 和 GroupSingle
建立最後迴圈程序
離開遊戲
最後整合程式
控充Sprite 物件邊界問題
擴充 Sprite 類別所處視窗
在擴充 Sprite 類別所處方向與位置資訊
擴充邊界之整合程式
擴充Sprite 物件考慮範圍問題
在擴充 Sprite 類別所處二軸方向與位置資訊
擴充全方位邊界之整合程式
擴充Sprite 物件內建屬性設定問題
在擴充 Sprite 類別離動距離資訊為屬性
建立距離屬性對應方法
在程式之中設定距離屬性
擴充亂數設定移動距離之整合程式
產生兩個物件在畫面上同時移動
主程式中加入第二個精靈角色
加入角色名字
加入碰撞反彈處理方法
在主程序中加入檢查是否碰撞
兩物件碰撞之整合程式
章節小結
PyGame 音效功能介紹
背景音樂基本介紹
music 用途
music 原理
music 基本用法
載入音樂文件
檢查是否音樂播放中
卸載音樂文件
播放音樂
暫停與繼續播放
重新播放音樂
播放中等待一些時間後停止
設定播放音樂位置
取得播放音樂位置
設置音量
取得目前音量大小
建立一個簡單的背景音樂
設定視窗介面屬性
建立視窗背景顏色
載入音樂文件
播放音樂
播放科學小飛俠主題曲之整合程式
加入鍵盤控制的背景音樂
讀取使用者按下鍵盤資訊
辨識使用者按下鍵盤資訊進行處理
加入鍵盤控制的背景音樂整合
背景音效基本介紹
Sound用途
Sound原理
Sound基本用法
加入鍵盤控制的音效
載入音效
讀取使用者按下鍵盤資訊
辨識使用者按下鍵盤資訊進行處理
加入鍵盤控制的音效
以球在平面移動撞壁產生音效
初始化pygame
建立視窗大小
建立視窗抬頭
建立視窗背景顏色
建立一個Ball 的Sprite 類別
Ball 的基本操作
Ball 的初始化
Ball 的屬性讀寫方法
Ball 的更新方法
建立精靈群組來處理更新與繪製機制
建立最後迴圈程序
離開遊戲
最後產生一個球碰掉牆壁會發出音效整合程式
章節小結
PyGame 操控功能介紹
鍵盤操控介紹
鍵盤檢測用途
鍵盤檢測原理
鍵盤基本用法
常見按鍵常用變數
檢測鍵盤判斷按鍵常用變數
建立一個以方向鍵移動的角色
內部變數部分:
初始化部分:
屬性部分:
類別公開方法部分:
類別使用方法:
建立一個小精靈(吃豆人)可以上下左右鍵移動的角色
Import匯入套件部分:
系統初始化部分:
精靈設計部分:
精靈群組設計部分:
遊戲主程序設計部分:
遊戲主程序迴圈控制部分:
遊戲主程序檢測鍵盤操控部分:
畫面更新部分:
最後程序:
滑鼠操控介紹
滑鼠操控原理
滑鼠操控基本用法
滑鼠操作基本用法
常見按鍵常用變數
建立一個打地鼠可以移動游標與按鍵改變圖片的角色
內部變數部分:
初始化部分:
屬性部分:
類別公開方法部分:
類別使用方法:
建立一個打地鼠可以畫面移動游標與按鍵改變圖片
Import匯入套件部分:
建立程式中使用的函數:
系統初始化部分:
精靈設計部分:
精靈群組設計部分:
遊戲主程序設計部分:
遊戲主程序迴圈控制部分:
遊戲主程序檢測滑鼠位置部分:
畫面更新部分:
最後程序:
章節小結
本書總結
作者介紹
附錄
參考文獻


 
 

自序

  遊戲設計與開發系列的書是我出版至今十多年,出書量也破一百八十多本大關,專為遊戲開發者攥寫的第一本教學書籍,當初出版電子書是希望能夠在教育界開一門Maker自造者相關的課程,沒想到一寫就已過十多年,繁簡體加起來的出版數也已也破一百八十多本大關的量,這些書都是我學習當一個Maker累積下來的成果。

  這本書可以說是我的另一個里程碑,之前都是以專案為主,將別人設計的產品進行逆向工程展開之後,將該產品重新實作,但是筆者發現,很多學子的程度對一個產品專案開發,仍是心有餘、力不足,所以筆者鑑於如此,回頭再寫基礎感測器系列與程式設計系列,希望透過這些基礎能力的書籍,來培養學子基礎程式開發的能力,等基礎扎穩之後,面對更難的產品開發或物聯網系統開發,有能游刃有餘。

  目前許多學子在學習程式設計之時,恐怕最不能了解的問題是,我為何要寫九九乘法表、為何要寫遞迴程式,為何要寫成函式型式…等等疑問,只因為在學校的學子,學習程式是為了可以了解『撰寫程式』的邏輯,並訓練且建立如何運用程式邏輯的能力,解譯現實中面對的問題。然而現實中的問題往往太過於複雜,授課的老師無法有多餘的時間與資源去解釋現實中複雜問題,期望能將現實中複雜問題淬鍊成邏輯上的思路,加以訓練學生其解題思路,但是眾多學子宥於現實問題的困惑,無法單純用純粹的解題思路來進行學習與訓練,反而以現實中的複雜來反駁老師教學太過學理,沒有實務上的應用為由,拒絕深入學習,這樣的情形,反而自己造成了學習上的障礙。

  本系列的書籍,針對目前學習上的盲點,希望讀者從Python程式語言開始學習,從開發語言安裝與設定、到開發整合工具的安裝與設定,到PyGame套件的安章與設定,接下來針對PyGame在開發遊戲的技巧,原理與範例,一步一步漸進學習,並透過程式技巧的模仿學習,來降低系統龐大產生大量程式與複雜程式所需要了解的時間與成本,透過固定需求對應的程式攥寫技巧模仿學習,可以更快學習如何開發遊戲,針對Pygame的基礎功能,一步一步針對遊戲開發所針對的思維、架構、開發基礎元素如圖片繪製、視窗文字繪製、幾何圖形繪製,到以精靈為基礎所有的設計、操控與動畫技巧,最後整合音樂與音效等,一一逐步教學,最後設計人機互動的技巧與技術最後的介紹,來貫穿本書遊戲設計與開發基礎功的訓練與教學。

  如此一來,因為學子們進行『重新開發軟體產品』過程之中,可以很有把握的了解自己正在進行什麼,對於學習過程之中,透過實務需求導引著開發過程,可以讓學子們讓實務產出與邏輯化思考產生關連,如此可以一掃過去陰霾,更踏實的進行學習。

  這十多年以來的經驗分享,逐漸在這群學子身上看到發芽,開始成長,覺得Maker的教育方式,極有可能在未來成為教育的主流,相信我每日、每月、每年不斷的努力之下,未來軟體設計與開發的教育、推廣、普及、成熟將指日可待。

  最後,請大家可以加入Maker的Open Knowledge的行列。
 
 

詳細資料

  • ISBN:9786264160995
  • 規格:平裝 / 408頁 / 17 x 23 x 2.04 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣

最近瀏覽商品

 

相關活動

  • 【自然科普、電腦資訊】童話裡的心理學【博客來電子書獨家-作者電子贈言簽名扉頁版】
 

購物說明

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則 

  • 共和國全書系
  • 時報暢銷展