从零点五开始用Unity做半个2D战棋小游戏(十一)
好久不見。
這是第28篇與游戲開發有關的文章。
| 寫在最前
這次想要做一個簡單且傳統的戰棋小游戲,大概的玩法是:在2D世界里創建一張由六邊形地塊組成的戰斗地圖,敵我雙方在地圖上輪流行動,并向對方發動攻擊,先消滅掉所有敵人的一方將獲得勝利。
預計將分為以下幾篇(未完成前可能會調整...):
1、創建戰場(已完成)
根據預定尺寸生成戰場地圖,并隨機一些障礙物。
2、添加地圖功能 (已完成)
實現戰場格子點擊反饋,地圖導航及范圍選定。
3、添加對戰雙方(已完成)
向戰場中添加作戰單位,作戰單位輪流行動,可進行移動、攻擊。
4、加入玩家控制(已完成)
玩家可控制一個戰斗單位,手動選擇移動目標及攻擊單位。
5、添加常用的界面(已完成)
建立界面管理器,加入一些常用的界面。
6、添加常用的戰場顯示(已完成)
為戰斗單位添加血條,加入傷害文字特效。
7、擴展作戰單位(已完成)
豐富戰斗元素,加入并實現手動釋放不同類型的技能。
8、加入AI系統(上)(已完成)
建立超級簡單的AI系統。
9、加入AI系統(中)(已完成)
調整AI系統的決策方式。
10、加入AI系統(下)(已完成)
總結AI系統。
11、擴展戰場地圖
豐富戰場地圖,加入地形及道具元素。
12、規范戰斗配置
可以通過規范化的數據結構配置戰場、職業、技能、道具等。
本次的主題是:豐富戰場地圖,加入地形及道具元素。
項目使用的Unity版本為:Unity2018.3.0f2。
代碼會上傳至我的Github:https://github.com/elsong823/HalfSLG?中,有興趣的同學請自取。
?
| 本次目標
◇?為地圖中的格子附帶一些屬性,當戰斗單位站在這些格子上時,對應的屬性(如:攻擊,防御,攻擊范圍)將會增加。
三種攜帶屬性的格子,非常直觀
◇?增加一些可以在地圖中使用的道具,道具隨機散落在一些格子上,戰斗單位移動到這些格子上時,會自動拾取道具。
地圖中隨機放置了一些道具
需要提前聲明的是:這里沒有實現AI決策時考慮地圖格子屬性,及使用道具的功能。
| 地圖格子的屬性
戰場中格子帶有屬性,是游戲中非常常見的設計,這里只實現了以下三種最簡單的屬性。
紅色:增加攻擊力的格子
綠色:增加防御力的格子
黃色:增加攻擊范圍的格子
這其中,攻擊、防御的格子更加簡單,只是在做戰斗計算時把賣二手手機靚號平臺格子屬性考慮進去即可;我這里非常粗暴的把它封在了獲取戰斗單位基礎屬性的接口中。
較為麻煩一些的是增加攻擊范圍的格子,不僅要考慮對“技能釋放范圍”的影響,還需要考慮對“以自身為中心技能”的覆蓋范圍的影響。
| 戰場道具
目前僅做了兩種道具。
◇?生命藥水:使用后恢復一定生命值。
生命藥水及屬性
◇?能量藥水:使用后增加一定能量值。
能量藥水及屬性
需要聲明的是,這些精美的道具圖標并非是從某3A大作中扒出來的,它們都是我個人純手工繪制的。
瑪瑙色的神秘液體淺眠在晶瑩剔透的水晶瓶中,輕輕搖晃把它們喚醒后,竟還散發出些許淡淡的果香;讓人只想往敵人的刀口上撞,好給自己找點理由,堂而皇之的品嘗它們。
| 道具使用規則
我采用的規則是:使用道具與使用技能相同,使用后即表示該回合結束。
使用生命藥水
使用能量藥水
由于我們之前已經寫好了戰斗事件的播放機制,所以這里只需要增加一個使用道具的事件,加入到戰斗事件隊列,然后播放即可,并沒有什么難度。
| 其他
還有一些不太重要的小事。
◇?調整戰斗操作欄
在操作欄新增一個道具按鈕,點擊可以彈出持有的道具,方便操作者使用道具。
通過操作欄使用道具
◇?簡易背包
新增了一個超級簡單的背包,只實現增加、減少道具的基礎功能即可,這里就不贅述了。
| 寫在最后
至此,擴展戰場地圖篇就介紹到這了。
下一篇,也是最后一篇,將會對游戲配置進行整理,并且做一個抒情。
愿不忘初心。
下回見。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的从零点五开始用Unity做半个2D战棋小游戏(十一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从零点五开始用Unity做半个2D战棋小
- 下一篇: 从零点五开始用Unity做半个2D战棋小