0916~0919_開學季語言展

Python遊戲開發(PyGame基礎篇)

Python Game Programming(An Introduction to PyGame)

達洋貓《櫻花樹》一卡通

達洋貓《櫻花樹》一卡通

【開學大作戰】一卡通全面限時9折起

  • 9 585
    650

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

本書是『遊戲設計與開發系列』的第一本書,主要教導新手與初階使用者之讀者熟悉使用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在直播平臺https://www.youtube.com/@dr.ultima/streams,不定期分享系統設計開發的經驗、技術與資訊工具、技術使用的經驗

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


蔡英德 (Yin-Te Tsai)

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


許智誠 (Chih-Cheng Hsu)

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

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9786264160995
    • 分級
    • 普通級
    • 頁數
    • 408
    • 商品規格
    • 18開17*23cm
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
※ 網友掛保證,絕不踩雷書單如下 ↓↓↓
預計 2025/09/19 出貨 參考庫存量:1 
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing