喜歡回合制戰棋游戲的玩家,肯定對《三國志曹操傳》和《英雄無敵》這兩款經典戰旗游戲不陌生吧,
在《三國志曹操傳》中,鎮壓黃巾軍、群雄討伐董卓、滅呂布等歷史事件與游戲中豐富的屬性職業、戰斗系統相結合,打造出了一款極為創新,又頗有東方文化底蘊的回合制戰棋游戲,
而《英雄無敵》則是美國游戲團隊開發出的一款極具西方魔幻色彩的戰旗游戲,該系列游戲想必是很多人年少的回憶吧,
很多人由《英雄無敵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 簡明教程》哦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/3887.html
標籤:其他
上一篇:unity 教程Tanks中的Transform.InverseTransformPoint理解
下一篇:lua學習之深入函式第二篇
