1. 程式人生 > 實用技巧 >Python製作塔防小遊戲

Python製作塔防小遊戲

開發工具

Python版本:3.6.4

相關模組:

pygame模組;

以及一些Python自帶的模組。


原理介紹

遊戲規則簡介:

玩家通過建造箭塔抵禦敵人的進攻。

每隔一段時間,將會有一波敵人從左上角的洞穴中誕生,並衝向右下角的城堡。玩家需要做的,則是通過建造箭塔射殺敵人,避免城堡受到敵人攻擊,同時,每當你射殺一個敵人,將獲得一定的金錢獎勵。

遊戲失敗:

每有一個敵人衝進城堡,城堡的生命值下降一定的數值,當城堡的生命值為0時,則遊戲失敗。

遊戲勝利:

隨著時間的推移,敵人的實力會越來越強,數量也會越來越多,所以你是不可能勝利的,哈哈。

遊戲介面說明:

T1-T3代表不同的箭塔型別,不同的箭塔型別具有不同的價格以及能力;

XXX代表出售箭塔(半價);

Pause代表暫停遊戲;

Quit代表退出遊戲。

玩家通過左鍵選中箭塔/出售箭塔標識,右鍵放棄當前選中的內容。滑鼠中間箭用於控制箭塔射擊的方向,否則箭塔將自由射擊。

選中箭塔後,將其移動到你認為合適的位置,點選滑鼠左鍵即可在該位置建造一個箭塔(當然前提是你賬戶餘額買得起箭塔,不然只能打怪攢錢了);選中出售箭塔後,將出售箭塔標識放在已建造的箭塔上,點選滑鼠左鍵,即可出售選中的箭塔。

逐步實現:

Step1:明確遊戲主邏輯

遊戲主邏輯應當是這樣的:


程式碼描述如下:

Step2:實現遊戲開始介面

這裡的要點在於當檢測到滑鼠移動到按鈕上時,執行按鈕變色操作,檢測到滑鼠點選按鈕位置時,跳出遊戲開始介面。主程式碼如下:


Step3:實現遊戲選擇介面

要點同步驟二,主程式碼如下:

遊戲難度定義在一個.json資料夾中,例如:

Step4:實現遊戲介面

首先,將地圖設計在.map檔案中,不同的數字代表不同的地圖元素,例如:

這樣就可以很方便地匯入不同的地圖:

其次就是畫工具欄:

如此一來,遊戲介面的雛形就出來了。接下來就是每隔一段時間產生一批敵人:

通過按鍵檢測和定義一些函式來實現使用者與遊戲的互動,例如造塔等操作。其中按鍵檢測的程式碼如下:

操作函式的定義如下:

當然,當檢測到暫停按鈕被按下時,你需要將遊戲切入暫停介面:

其中按鍵閃爍的實現主要依靠每隔一小段時間顯示一次按鍵實現,其它要點同步驟二。

最後,就是讓箭塔可以不停地射箭並且通過碰撞檢測來判斷箭是否射中了敵人(射中的話敵人生命值會下降,下降到0時敵人才會死掉),畫出遊戲介面中還存在著的所有元素:

[圖片上傳中...(image-1d574a-1607923877615-2)]

當然,如果城堡死掉了,那麼遊戲也就結束了:

[圖片上傳中...(image-f5be0d-1607923877615-1)]

Step5:實現結束介面

要點同步驟二,主程式碼如下:

[圖片上傳中...(image-aa88a0-1607923877615-0)]

All Done!

環境搭建

安裝Python並新增到環境變數,pip安裝需要的相關模組即可。

原理介紹

遊戲規則簡介:

玩家通過建造箭塔抵禦敵人的進攻。

每隔一段時間,將會有一波敵人從左上角的洞穴中誕生,並衝向右下角的城堡。玩家需要做的,則是通過建造箭塔射殺敵人,避免城堡受到敵人攻擊,同時,每當你射殺一個敵人,將獲得一定的金錢獎勵。

遊戲失敗:

每有一個敵人衝進城堡,城堡的生命值下降一定的數值,當城堡的生命值為0時,則遊戲失敗。

遊戲勝利:

隨著時間的推移,敵人的實力會越來越強,數量也會越來越多,所以你是不可能勝利的,哈哈。

遊戲介面說明:

T1-T3代表不同的箭塔型別,不同的箭塔型別具有不同的價格以及能力;

XXX代表出售箭塔(半價);

Pause代表暫停遊戲;

Quit代表退出遊戲。

玩家通過左鍵選中箭塔/出售箭塔標識,右鍵放棄當前選中的內容。滑鼠中間箭用於控制箭塔射擊的方向,否則箭塔將自由射擊。

選中箭塔後,將其移動到你認為合適的位置,點選滑鼠左鍵即可在該位置建造一個箭塔(當然前提是你賬戶餘額買得起箭塔,不然只能打怪攢錢了);選中出售箭塔後,將出售箭塔標識放在已建造的箭塔上,點選滑鼠左鍵,即可出售選中的箭塔。

逐步實現:

Step1:明確遊戲主邏輯

遊戲主邏輯應當是這樣的:

程式碼描述如下:

Step2:實現遊戲開始介面

這裡的要點在於當檢測到滑鼠移動到按鈕上時,執行按鈕變色操作,檢測到滑鼠點選按鈕位置時,跳出遊戲開始介面。主程式碼如下:

Step3:實現遊戲選擇介面

要點同步驟二,主程式碼如下:

遊戲難度定義在一個.json資料夾中,例如:

Step4:實現遊戲介面

首先,將地圖設計在.map檔案中,不同的數字代表不同的地圖元素,例如:

這樣就可以很方便地匯入不同的地圖:

其次就是畫工具欄:


如此一來,遊戲介面的雛形就出來了。接下來就是每隔一段時間產生一批敵人:


通過按鍵檢測和定義一些函式來實現使用者與遊戲的互動,例如造塔等操作。其中按鍵檢測的程式碼如下:

操作函式的定義如下:


當然,當檢測到暫停按鈕被按下時,你需要將遊戲切入暫停介面:

其中按鍵閃爍的實現主要依靠每隔一小段時間顯示一次按鍵實現,其它要點同步驟二。

最後,就是讓箭塔可以不停地射箭並且通過碰撞檢測來判斷箭是否射中了敵人(射中的話敵人生命值會下降,下降到0時敵人才會死掉),畫出遊戲介面中還存在著的所有元素:

當然,如果城堡死掉了,那麼遊戲也就結束了:


Step5:實現結束介面

要點同步驟二,主程式碼如下:


All Done!


本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯絡我們以作處理

想要獲取更多Python學習資料可以加
QQ:2955637827私聊
或加Q群630390733
大家一起來學習討論吧!