中文編程pygame游戲教程9_賽車(面向對象)

用面向對象的思想寫的程序, 更容易理解和重用, 但是一般的python初學者不太容易理解類(class)的設計, 我發(fā)現(xiàn)用游戲元素來解釋類是比較好理解的, 這里我們先用之前的面向過程的寫法寫一個簡單的賽車游戲, 然后再轉成面向對象的寫法, 相信你通過這個例子, 能輕松入門類的寫法.

一個簡單的賽車游戲
我們向屏幕下方添加一個賽車圖片, 通過按向上鍵可以讓它持續(xù)移動到屏幕上方.
由于都是前幾節(jié)的知識, 就不再詳細分步驟添加了, 如果前幾節(jié)沒有掌握好的可以看同名視頻的講解, 這里給出所有代碼:
添加賽車
如果要向游戲中添加兩輛賽車呢? 你可能會這樣做:
我們可以看到代碼增加了太多, 而且非常相似, 寫起來很麻煩, 如果復制粘貼再修改很容易出錯, 如果用寫一個賽車類就可以非常簡練, 而且再添加10輛賽車也很簡單. 我們先看代碼:
我們雖然沒有寫過類, 但我們其實一直在使用類, 比如我們使用字符串或列表, 其實是用python已經(jīng)設計好的字符串類和列表類, 我們新建一個字符串或列表, 就是使用類建立了一個實例, 然后這個字符串就可以使用python已經(jīng)在字符串類中設計好的方法進行大寫/分割/截取等操作.
我覺得類可以理解為模型, 我們寫一個賽車類就相當于汽車工廠的設計師設計的賽車的模型圖紙, 類的實例化就相當于工廠根據(jù)圖紙制造了一輛賽車, 然后我們在while循環(huán)中放到屏幕中就相當于放到銷售中心展示這輛車. 所以我們的步驟是: 1.創(chuàng)建賽車類(工程師設計賽車圖紙) 2.實例化(制造若干個賽車) 3.放進屏幕中(在銷售中心展示)
之后我們向給賽車增加功能, 直接修改類而不需要影響其他代碼, 比如我下面想給賽車增加轉向的方法, 你可以自己試著實現(xiàn).
類可以被其他程序導入
我們每次寫代碼前面總是有import部分, 現(xiàn)在我們的這個文件也能被其他程序導入, 讓其他程序能不用設計直接新建一輛賽車, 比如我們在之前的移動的小球中要添加一輛賽車, 直接導入這個文件的賽車類就可以使用了:

到這里, 常用pygame的基礎知識已經(jīng)講完了, 之后我們的教程都是游戲實例, 而且都會用面向對象的寫法來寫, 你會發(fā)現(xiàn)這種寫法更容易.
