三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩

喜歡回合制戰棋遊戲的玩家,肯定對《三國志曹操傳》和《英雄無敵》這兩款經典戰棋遊戲不陌生吧。

《三國志曹操傳》中,鎮壓黃巾軍、群雄討伐董卓、滅呂布等歷史事件與遊戲中豐富的屬性職業、戰鬥系統相結合,打造出了一款極為創新,又頗有東方文化底蘊的回合制戰棋遊戲。


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩


《英雄無敵》則是美國遊戲團隊開發出的一款極具西方魔幻色彩的戰棋遊戲,該系列遊戲想必是很多人年少的回憶吧。

很多人由《英雄無敵3》入坑,遊戲中英雄的臉譜,各種靜物,諸如花草河流等,都刻畫得比前作更為細膩精美。


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩


但玩了那麼多戰棋遊戲的你,可曾想過,自己做個戰棋遊戲玩玩?

給朋友親人玩自己開發的遊戲,豈不美哉?

今天,我就手把手教大家開發一個回合制戰棋遊戲,且最終會有源碼可供下載。

如果還沒有學習過Python的朋友,建議先學習實驗樓的免費課程《Python3 簡明教程》。

想直接下載遊戲源碼的朋友,可以登錄實驗樓官網,搜索課程《Pygame 打造回合制戰棋遊戲》。

不僅有全套代碼下載,還有可直接上手操作的Web IDE供大家在線製作遊戲。

遊戲展示

遊戲使用 pygame 模塊實現了類似英雄無敵系列的回合制戰棋遊戲:


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩


對戰雙方每個生物每一輪有一次行動機會,可以行走或攻擊對方。

每個生物屬性有:行走範圍,速度,生命,傷害,防禦,攻擊 和是否是遠程兵種。

當把對方生物都消滅時,遊戲勝利。使用 JSON 保存地圖關卡配置文件,可以方便得添加或修改地圖關卡。實現了一個遊戲生物 AI,可以進行人機對戰。支持方格地圖和六邊形地圖兩種地圖形式。

pygame簡介及基礎語法

接下來,就讓我們先了解一下此遊戲需要用到的開發工具:pygame。

pygame 是一個用來開發遊戲的 Python 模塊,基於 SDL(Simple DirectMedia Layer) 庫的基礎上開發。

pygame 其實就是 Python 中在 SDL 基礎上封裝的一個庫,允許你在 Python 程序中創建功能豐富的遊戲和多媒體程序。

pygame 比較適合開發 2D 遊戲,比如說,你可以用 pygame 實現植物大戰殭屍,憤怒的小鳥,超級馬里奧等遊戲。

pygame 初始化相關函數:

  • pygame.init() 在使用 pygame 模塊功能前,需要先調用 pygame 的 init 函數進行初始化,然後才可以使用 pygame 提供的函數。
  • pygame.display.set_caption(title, icontitle=None) 設置遊戲窗口的標題
  • pygame.display.set_mode(size=(0, 0), flags=0, depth=0, display=0) 初始化遊戲的窗口,可以設置遊戲窗口大小, 單位為像素。
  • pygame.display.get_surface() 返回用來顯示遊戲窗口的 Surface 對象

pygame 基本設置函數:

  • pygame.display.update() 如果對遊戲中顯示進行了修改,比如更新了一個運動物體的位置,需要用這個函數來刷新,遊戲界面上才能顯示出變化。
  • pygame.time.Clock() 生成一個 pygame clock 對象。clock 對象的 tick 函數,
  • tick(framerate=0) clock 對象的 tick 函數用來實現遊戲每秒會運行多少幀數,比如參數 framerate 設為 50,表示每秒運行 50 幀,即tick函數調用 50 次,大概耗時是 1 秒。也就是說每次調用 tick 函數大概會等待 0.02 秒,函數調用才會返回。

具體開發流程

具體開發流程略長,含豐富的教學代碼與知識點,大家可登錄實驗樓官網,搜索課程《Pygame 打造回合制戰棋遊戲》查看。

你將學到:


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩

內容安排:


三國志、英雄無敵玩膩了?沒關係,我教你開發個戰棋遊戲玩玩

注:強烈建議沒有任何編程基礎的同學先學習實驗樓的《Python3 簡明教程》哦。


分享到:


相關文章: