Python_從零開始學習_(49) 飛機大戰_物件導向設計類
目錄
1. 明確主程式職責
- 一個遊戲主程式的 職責 可以分為兩個部分:
遊戲初始化
遊戲迴圈 - 根據明確的職責, 設計 PlaneGame 類如下:
提示 根據 職責 封裝私有方法, 可以避免某一個方法的程式碼寫得太過冗長
如果某一個方法編寫的太長, 既不好閱讀, 也不好維護!
- 遊戲初始化 ---- __init__() 會呼叫以下方法:
方法 | 職責 |
---|---|
事件監聽 | |
碰撞檢測 | |
精靈組更新和繪製 | |
遊戲結束 |
2. 實現飛機大戰主遊戲類
2.1 明確檔案職責
- plane_main
- 封裝 主遊戲類
- 建立 遊戲物件
- 啟動遊戲
- plane_sprites
封裝遊戲中 所有 需要使用的 精靈子類
提供遊戲的 相關工具
程式碼實現
- 新建 plane_main.py 檔案, 並且設定為可執行
- 編寫 繼承程式碼
class PlaneGame(object):
"""飛機大戰祝遊戲"""
def __init__(self):
print("遊戲初始化")
# 1. 建立遊戲的視窗
self.screen = pygame.display.set_mode((480, 700))
# 2. 建立遊戲的失蹤
self.clock = pygame.time.Clock()
# 3. 呼叫私有方法, 精靈和精靈組的建立
self.__create_sprites()
def __create_sprites(self):
pass
def start_game(self):
print("遊戲開始...")
使用 常量 代替固定的數值
- 變數 ---- 不變化的量
- 變數 ---- 可以變化的量
應用場景
- 在開發時, 可能會需要使用 固定的數值, 例如 螢幕的高度 是 700
- 這個時候, 建議 不要 直接使用固定數值, 而應該使用 常量
- 在開發時, 為了保證程式碼的可維護性, 儘量不要使用 魔法數字
常量的定義
- 定義 常量 和 定義 變數 的語法完全一樣, 都是使用 賦值語句
- 常量 的 命名 應該 所有字母都使用大寫, 單詞與單詞之間使用下劃線連線
常量的好處
- 閱讀程式碼時, 通過 常量名 見名知意, 不需要猜測數字的含義
- 如果需要 調整值, 只需要 修改常量定義 就可以實現 統一修改
提示: Python 中並沒有真正意義的常量, 只是通過命名的約定 ---- 所有字母都是大寫的就是常量, 開發時不要輕易的修改!
程式碼調整
- 在 plane_sprites.py 中增加常量定義
# 定義螢幕大小常量
SCREEN_RECT = pygame.Rect(0, 0, 480, 700)
# 重新整理的幀率
FRAME_PER_SEC = 60
相關文章
- 從零開始的Python學習Episode 18——物件導向(1)Python物件
- 從零開始的Python學習Episode 19——物件導向(2)Python物件
- Python學習之路——類-物件導向程式設計Python物件程式設計
- 從零學Python:18-物件導向程式設計應用Python物件程式設計
- 從零學Python:17課-物件導向程式設計(進階)Python物件程式設計
- java從頭開始--物件導向1Java物件
- 《從零開始學Swift》學習筆記(Day 49)——擴充套件宣告Swift筆記套件
- 物件導向——類設計(一)物件
- Java SE 學習---物件導向程式設計Java物件程式設計
- 使用Java開始物件導向的程式設計(轉)Java物件程式設計
- 從零學Python:第十六課-物件導向程式設計入門Python物件程式設計
- 從零開始學習KafkaKafka
- 從零開始學習機器學習機器學習
- 從零開始學習laravelLaravel
- 風變程式設計,幫助你從零開始學習程式設計程式設計
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- Python學習之物件導向程式設計Python物件程式設計
- eclipse學習從零開始Eclipse
- 從物件導向解讀設計思想物件
- 從零開始單排學設計模式「UML類圖」定級賽設計模式
- 從零開始理解 Laravel 的設計哲學Laravel
- 物件導向設計原則&設計模式分類物件設計模式
- 課時37:類與物件:物件導向程式設計物件程式設計
- 大資料學習路線(自己制定,從零開始)大資料
- 併發程式設計從零開始(十四)-Executors工具類程式設計
- 併發程式設計從零開始(十一)-Atomic類程式設計
- 學習Rust 物件導向Rust物件
- 從零開始學習 Go ——安裝Go
- 30天從零開始學習SwiftSwift
- Python學習之物件導向高階程式設計Python物件程式設計
- JAVA基礎:使用Java開始物件導向的程式設計(轉)Java物件程式設計
- 從零開始學設計模式(七)—橋接模式設計模式橋接
- 《從零開始學Swift》學習筆記(Day 41)——類的繼承Swift筆記繼承
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 物件導向設計的六大設計原則(附 Demo & UML類圖)物件
- 物件導向設計6大原則物件
- 動手學深度學習(二)——多層感知機(從零開始)深度學習
- 大資料學習之路——java物件導向(二)大資料Java物件