'想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……'

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第三步:更改MainGame的load_plants方法

加入對牆果的加載,由於牆果不需要執行什麼動作,因此不需要像向日葵和豌豆射手一樣啟動方法,代碼如下:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第三步:更改MainGame的load_plants方法

加入對牆果的加載,由於牆果不需要執行什麼動作,因此不需要像向日葵和豌豆射手一樣啟動方法,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第四步:更改MainGame的deal_events方法

增加牆果的添加操作響應。前面我們說到過,鼠標左鍵創建向日葵、鼠標右鍵創建豌豆射手,那麼在現有模式下,我們可以通過鍵盤按鍵來創建牆果,也可以通過鼠標的其他操作——例如滾輪來實現,我是用向上滾輪來作為牆果的創建條件,在deal_events中增加以下代碼:

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第三步:更改MainGame的load_plants方法

加入對牆果的加載,由於牆果不需要執行什麼動作,因此不需要像向日葵和豌豆射手一樣啟動方法,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第四步:更改MainGame的deal_events方法

增加牆果的添加操作響應。前面我們說到過,鼠標左鍵創建向日葵、鼠標右鍵創建豌豆射手,那麼在現有模式下,我們可以通過鍵盤按鍵來創建牆果,也可以通過鼠標的其他操作——例如滾輪來實現,我是用向上滾輪來作為牆果的創建條件,在deal_events中增加以下代碼:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……


現在牆果這一遊戲元素就徹底添加成功了,我們來運行一下游戲看看效果,可能是我把牆果設置得太強大了,現在殭屍完全無法通過了(下圖),總體來說效果還是不錯的。

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第三步:更改MainGame的load_plants方法

加入對牆果的加載,由於牆果不需要執行什麼動作,因此不需要像向日葵和豌豆射手一樣啟動方法,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第四步:更改MainGame的deal_events方法

增加牆果的添加操作響應。前面我們說到過,鼠標左鍵創建向日葵、鼠標右鍵創建豌豆射手,那麼在現有模式下,我們可以通過鍵盤按鍵來創建牆果,也可以通過鼠標的其他操作——例如滾輪來實現,我是用向上滾輪來作為牆果的創建條件,在deal_events中增加以下代碼:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……


現在牆果這一遊戲元素就徹底添加成功了,我們來運行一下游戲看看效果,可能是我把牆果設置得太強大了,現在殭屍完全無法通過了(下圖),總體來說效果還是不錯的。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

03.

更多玩法

上面我們演示了兩種比較簡單的遊戲定製思路,除此之外還可以增加更多的植物、添加多種殭屍,還可以改變植物的創建方式、改變遊戲的操作模式,對遊戲的畫面和界面進行優化和完善等等。

你也可以脫離原本的《植物大戰殭屍》遊戲模式,創新打造完全屬於自己的遊戲。由於擴展性實在太強,我就不再班門弄斧了,有興趣的小夥伴們自己來體驗吧!

福利時間:

這份教程用400集視頻教學,手把手教你入門Python,帶你親密接觸高深的底層知識、神經網絡底層實現的知識,徹底激發你對Python技術的興趣!

從基礎篇到高手篇,涵蓋Python知識的方方面面。不僅帶領零基礎同學輕鬆入門,還能持續提升你的技術水平,成為真正的技術專家。

獲取方式:

轉發此文,關注並私信小編“資料”即可領取

"

《植物大戰殭屍》這款遊戲也算是曾經風靡一時,不少網友曾用Python開發《坦克大戰》、《飛機大戰》、《掃雷》等經典遊戲,開發《植物大戰殭屍》當然也沒問題。相比《坦克大戰》等遊戲,《植物大戰殭屍》的遊戲元素更多,設計起來會更加複雜,不過不必擔心,因為我們這次不是從0開始憑空開發,而是藉助一款植物大戰殭屍的Python開源框架來實現。

01.

現有框架

1).先睹為快

既然是藉助框架來開發,當然要清楚框架實現了哪些功能。項目地址如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

https://github.com/371854496/pygame

使用起來很方便,把文件下載到本地後執行game.py就可以運行遊戲了,前提是你已經安裝了pygame模塊。

作為一款《植物大戰殭屍》遊戲,最基本的要素:遊戲窗口、草地、植物、殭屍、收集陽光、攻擊等已經全部實現了,但是由於是遊戲框架,目前已經完成的元素還比較少,植物方面只有最基本的向日葵和普通豌豆,殭屍也只有一種。即便如此,也為我們的進一步開發提供了很大的遍歷條件。

2).遊戲設計

要想在現有框架的基礎上進行改造,肯定先要熟悉源代碼,在此之前,我們先一起從整體層面看看目前的遊戲是如何設置的,來看下面這張圖。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

根據遊戲說明,在草地任意單元格點擊左鍵會建造向日葵、右鍵建造豌豆(前提是該位置沒有其他植物),向日葵建好後會自動產生陽光,也就是遊戲中的錢,豌豆建造後會對本條線上的殭屍進行攻擊,每殺死一個殭屍會得到20分,分數達到要求就會自動進入下一關卡,只要有一個殭屍穿越草地就算遊戲失敗。

作為一款自制小遊戲,在一定程度上對原遊戲進行了簡化,但是基本模式都是一樣的;另外,上面所講的遊戲設計,我們都可以根據自己的想法進行更改完善。

3).程序結構

在對遊戲設計有了整體的把握後,再去讀源代碼就容易多了,加上作者的程序結果設計的非常好,理解起來應該會很容易。

模塊導入、圖片路徑配置、界面寬高、背景顏色等樣式設置我們暫且不提,重點來說一下程序結構,由於代碼比較長,我做了一個思維導圖進行說明:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

我們先來看目標類,目前這款遊戲框架的目標類主要分為四種:

  • 地圖類:包含了遊戲中草坪的相關信息,例如當前單元格是否允許種植。
  • 植物類:定義了植物相關屬性和方法,目前只包含向日葵和豌豆兩個子類。
  • 殭屍類:定義了殭屍的屬性和方法,包括移動和攻擊等,遊戲失敗條件(殭屍穿越條件)也在這裡定義。
  • 子彈類:定義了豌豆子彈的相關屬性和方法,包括飛行、打擊等,殺死殭屍、得分闖關在這裡定義。

再來看主程序,在這裡定義了例如得分、關卡、金錢、地圖信息、植物信息、殭屍信息等屬性,另外還定義了10個方法,結構和功能都很清晰,就不再一一說明了。

這裡重點說一下植物加載、殭屍加載、子彈加載這幾個方法,這幾個方法在start_game中調用,會生成並在地圖中載入對應的類對象,同時調用相關方法函數,例如向日葵產生金錢、豌豆準備攻擊等。

還有一個需要注意的就是deal_events方法,這是遊戲中的事件處理,也就是說玩家的所有操作都需要在這裡得到響應。

至於各個類和方法的一些細節大家可以自己去讀源代碼,其中部分內容我們在下文中也會詳細說明。

02.

自由定製

框架程序脈絡捋清後,我們就可以進入今天真正的主題——遊戲的定製環節了。

1).基礎修改

大家如果留意到最開始的動畫就會發現,我已經離GAMEOVER不遠了,一方面可能實我的水平確實菜,另一方面其實目前的遊戲難度還是蠻大的。但是,既然源碼都在我們手裡,想降低遊戲難度那是分分鐘的事,隨便改幾個屬性就可以,例如增加金錢產生速度、增加豌豆攻擊力,降低殭屍產生頻率等等,在下圖的代碼中,我可以降低殭屍的生命值:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

再來運行遊戲,只要一排豌豆射手,殭屍統統無法靠近(請看我的得分):

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

像這種基礎性的修改還可以用到很多方面,比如畫面大小和風格,遊戲性的調整等等。

2)增加元素

對遊戲的基礎修改是非常簡單的,但是要想打造自己的《植物大戰殭屍》還是遠遠不夠的,這次我們嘗試更高級一點的操作。

玩過遊戲的都知道,《植物大戰殭屍》中最基本的植物除了向日葵和豌豆射手之外還有牆果,牆果擁有
很高的生命值,可以作為肉盾來使用。但是目前的遊戲中沒有這種植物,那我們就給他添加一個。

第一步:準備一幅牆果的圖片(80×80),把它放到imgs目錄中。

第二步:添加牆果類

牆果也是一種植物,因此可以作為Plant的子類來設計,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第三步:更改MainGame的load_plants方法

加入對牆果的加載,由於牆果不需要執行什麼動作,因此不需要像向日葵和豌豆射手一樣啟動方法,代碼如下:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

第四步:更改MainGame的deal_events方法

增加牆果的添加操作響應。前面我們說到過,鼠標左鍵創建向日葵、鼠標右鍵創建豌豆射手,那麼在現有模式下,我們可以通過鍵盤按鍵來創建牆果,也可以通過鼠標的其他操作——例如滾輪來實現,我是用向上滾輪來作為牆果的創建條件,在deal_events中增加以下代碼:

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……


現在牆果這一遊戲元素就徹底添加成功了,我們來運行一下游戲看看效果,可能是我把牆果設置得太強大了,現在殭屍完全無法通過了(下圖),總體來說效果還是不錯的。

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

03.

更多玩法

上面我們演示了兩種比較簡單的遊戲定製思路,除此之外還可以增加更多的植物、添加多種殭屍,還可以改變植物的創建方式、改變遊戲的操作模式,對遊戲的畫面和界面進行優化和完善等等。

你也可以脫離原本的《植物大戰殭屍》遊戲模式,創新打造完全屬於自己的遊戲。由於擴展性實在太強,我就不再班門弄斧了,有興趣的小夥伴們自己來體驗吧!

福利時間:

這份教程用400集視頻教學,手把手教你入門Python,帶你親密接觸高深的底層知識、神經網絡底層實現的知識,徹底激發你對Python技術的興趣!

從基礎篇到高手篇,涵蓋Python知識的方方面面。不僅帶領零基礎同學輕鬆入門,還能持續提升你的技術水平,成為真正的技術專家。

獲取方式:

轉發此文,關注並私信小編“資料”即可領取

想學嗎?用Python輕鬆打造定製款《植物大戰殭屍》文末福利……

"

相關推薦

推薦中...