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物件
- 從零開始學機器學習——K-Means 聚類機器學習聚類
- 從零開始學機器學習——聚類視覺化機器學習聚類視覺化
- 從零開始學機器學習——分類器詳解機器學習
- 從零學Python:第十六課-物件導向程式設計入門Python物件程式設計
- Python學習之物件導向程式設計Python物件程式設計
- 從零開始機器學習-03機器學習
- 從零開始機器學習--4機器學習
- 從零開始機器學習--05機器學習
- 從零開始學機器學習——瞭解分類演算法機器學習演算法
- 風變程式設計,幫助你從零開始學習程式設計程式設計
- 從物件導向解讀設計思想物件
- 從零開始學習laravelLaravel
- 從零開始學習KafkaKafka
- 物件導向設計原則&設計模式分類物件設計模式
- 從零開始學機器學習——入門NLP機器學習
- Python學習之物件導向高階程式設計Python物件程式設計
- 併發程式設計從零開始(十一)-Atomic類程式設計
- 課時37:類與物件:物件導向程式設計物件程式設計
- Python如何設計物件導向的類(下)Python物件
- Python如何設計物件導向的類(上)Python物件
- 從零開始單排學設計模式「UML類圖」定級賽設計模式
- 從零開始理解 Laravel 的設計哲學Laravel
- 從零開始學機器學習——邏輯迴歸機器學習邏輯迴歸
- 從零開始學機器學習——網路應用機器學習
- 從零開始學機器學習——瞭解迴歸機器學習
- Python 學習筆記之類「物件導向,超類,抽象」Python筆記物件抽象
- 併發程式設計從零開始(十四)-Executors工具類程式設計
- Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python物件程式設計