三国志、英雄无敌玩腻了?没关系,我教你开发个战旗游戏玩玩
喜歡回合制戰棋游戲的玩家,肯定對《三國志曹操傳》和《英雄無敵》這兩款經典戰旗游戲不陌生吧。
在《三國志曹操傳》中,鎮壓黃巾軍、群雄討伐董卓、滅呂布等歷史事件與游戲中豐富的屬性職業、戰斗系統相結合,打造出了一款極為創新,又頗有東方文化底蘊的回合制戰棋游戲。
而《英雄無敵》則是美國游戲團隊開發出的一款極具西方魔幻色彩的戰旗游戲,該系列游戲想必是很多人年少的回憶吧。
很多人由《英雄無敵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 簡明教程》哦。
總結
以上是生活随笔為你收集整理的三国志、英雄无敌玩腻了?没关系,我教你开发个战旗游戏玩玩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 连续 4 年成为“开发者最喜欢的语言”,
- 下一篇: 10 分钟从零搭建个人博客