照著online tutorial刻了一個基本的遊戲

更新 發佈閱讀 2 分鐘
raw-image

前言

Youtube上逛著逛著看到techwithtim的線上教學,這是一個pygame的模組練習,只是我想了解深入一點的是物件導向的寫法應用。影片大約兩小時,實際邊動手coding,一邊看著影片的講解,結果花在這上面的時間遠遠超過我的預期。當然,看別人都好像很簡單,自己寫起來總是卡東卡西,下面分別說明一下這支程式的組成吧!

問題拆解

匯入圖檔

將事先準備好的圖片資源,用pygame的語法把圖片讀取進來,包含飛船及背景。

物件控制

採用物件導向的思維去做規劃,例如:
玩家的飛船與敵方的飛船都是飛船,因此建立一個飛船的class,寫好飛船所該有的基本屬性(生命值、發射雷射、移動...),再讓玩家飛船敵方飛船去繼承飛船的class,依照個別飛船獨有的特性再另作設計。

碰撞偵測

這部份對於遊戲開發有興趣在另行深入研究。

包裝展示

  • 呈現血條
  • 開始頁面
  • 剩餘生命數
  • 遊戲難度等級

小結

以前寫程式多拿來多數據分析,用的多是照著script順序完成就好,頂多寫幾個function減少重複性操作,不像開發軟體時的思維方向。作為物件導向寫法的練習,我認為從寫個小遊戲下手是個不錯的方向,一方面完成時比較有成就感,一方面是當物件、人物、參與的對象越來越多時,不得不考慮以物件化的方式去思考,也才會明白在開始著手前規劃好各個class之間的關聯性。

留言
avatar-img
Err500
15會員
83內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2022/06/06
初玩python時常用pip安裝各式各樣的套件下來,而這些套件在本機中是以全域的方式安裝。假設今天需要接手別人的專案,所用的套件版本不相容,對於這些仰賴的套件(依賴dependencies)進行管理跟切分就成了一個課題。
Thumbnail
2021/10/10
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
2021/10/10
翻閱了去年面試時候的題目,想想現在自己會用什麼方式重新完成這個題目,也正好最近在看python的typing模組及其他使用,使用物件導向的方式改寫了程式碼。
Thumbnail
2020/05/20
常常會在其他教學影片中看到if __name__ == "__main__"  的寫法,為什麼要這樣做呢?
Thumbnail
2020/05/20
常常會在其他教學影片中看到if __name__ == "__main__"  的寫法,為什麼要這樣做呢?
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
這篇文章將會講述子彈射擊與命中的思路,不包含實際程式設計。
Thumbnail
這篇文章將會講述一款純粹由 AI 繪圖製作的遊戲,它的構想、初步架構;開發者的備註、心情;專案建置、介紹;遊戲流程圖、遊戲架構圖;遊戲初步的動畫腳本、草稿。 關於開發這款遊戲的一些狀況
Thumbnail
這篇文章將會講述一款純粹由 AI 繪圖製作的遊戲,它的構想、初步架構;開發者的備註、心情;專案建置、介紹;遊戲流程圖、遊戲架構圖;遊戲初步的動畫腳本、草稿。 關於開發這款遊戲的一些狀況
Thumbnail
養貓遊戲,學員想搞這遊戲 所以就出手幫忙搞一下 打造一下雛型給同學參考 裡面基本上就 UI介面的控制 物件的處理與物件拖曳等功能 對於初學者來說是不錯的練習~ Google Play 商店 下載
Thumbnail
養貓遊戲,學員想搞這遊戲 所以就出手幫忙搞一下 打造一下雛型給同學參考 裡面基本上就 UI介面的控制 物件的處理與物件拖曳等功能 對於初學者來說是不錯的練習~ Google Play 商店 下載
Thumbnail
前一篇說到遊戲開發的契機以及介紹了開發工具與官方提供的遊戲模板,在這一篇文章中,會開始進行遊戲的設計與製作,目標是上架到 Google Play 與 App Store 平台上,讓我們開始吧!
Thumbnail
前一篇說到遊戲開發的契機以及介紹了開發工具與官方提供的遊戲模板,在這一篇文章中,會開始進行遊戲的設計與製作,目標是上架到 Google Play 與 App Store 平台上,讓我們開始吧!
Thumbnail
可能是初老症發作的的原因,最近玩到這類懷舊遊戲就很容易陷入某種懷舊時光的情緒中,一不小心就會玩到忘了時間,所以就興起了何不自己動手把童年那些有印象的街機遊戲全部實作一遍的念頭呢?不囉嗦以下就是這系列的第一款。。。
Thumbnail
可能是初老症發作的的原因,最近玩到這類懷舊遊戲就很容易陷入某種懷舊時光的情緒中,一不小心就會玩到忘了時間,所以就興起了何不自己動手把童年那些有印象的街機遊戲全部實作一遍的念頭呢?不囉嗦以下就是這系列的第一款。。。
Thumbnail
本文章將藉由我的經歷,講述普通人邁向遊戲設計師的歷程,首先簡單介紹遊戲設計師,再把這段時間的經歷分成五步,從職業基本認識到入門方式一步一步介紹,如果你對遊戲設計有興趣、摸索如何成為遊戲設計師,那我相信這篇文章會適合你。
Thumbnail
本文章將藉由我的經歷,講述普通人邁向遊戲設計師的歷程,首先簡單介紹遊戲設計師,再把這段時間的經歷分成五步,從職業基本認識到入門方式一步一步介紹,如果你對遊戲設計有興趣、摸索如何成為遊戲設計師,那我相信這篇文章會適合你。
Thumbnail
到目前為止,我們所學習的都是程序性的程式設計(procedural programming),也就是程式碼是透過一連串的指令組成的程序或函數,由上而下依序執行不同的程序或是呼叫函數來完成程式的功能。 Python其實是一種物件導向的程式(object oriented programming, 簡稱
Thumbnail
到目前為止,我們所學習的都是程序性的程式設計(procedural programming),也就是程式碼是透過一連串的指令組成的程序或函數,由上而下依序執行不同的程序或是呼叫函數來完成程式的功能。 Python其實是一種物件導向的程式(object oriented programming, 簡稱
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News