日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从零点五开始用Unity做半个2D战棋小游戏(四)

發布時間:2024/9/3 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从零点五开始用Unity做半个2D战棋小游戏(四) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在最前

這次想要一個簡單且傳統的戰棋小游戲,大概的玩法是:在2D世界里創建一張由六邊形地塊組成的戰斗地圖,敵我雙方依據體力在地圖上輪流行動并向對方發動攻擊,先消滅掉所有敵人的一方將獲得勝利。

預計將分為以下幾篇(未完成前可能會調整...):

1、創建戰場(已完成)

根據預定尺寸生成戰場地圖,并隨機一些障礙物。

2、添加地圖功能 (已完成)

實現戰場格子點擊反饋,地圖導航及范圍選定。

3、添加對戰雙方(已完成)

向戰場中添加作戰單位,作戰單位輪流行動,可進行移動、攻擊。

4、加入玩家控制

玩家可控制一個戰斗單位,手動選擇移動目標及攻擊單位。

5、添加戰場UI

添加可以隨時顯示戰況的Hud、為作戰單位添加血條等。

6、擴展作戰單位

豐富作戰單位的類型,添加職業,并加入若干不同類型的技能。

7、擴展戰場地圖

豐富戰場地圖,加入地形及道具等元素。

8、規范戰斗配置

可以通過規范化的數據結構配置戰場、職業、技能、道具等。

本次的主題是:加入玩家控制。

| 目標

分配一個角色給玩家手動操作,每回合玩家有一次行動機會,行動的規則是:可從移動、攻擊、待命中選擇一次操作,當玩家選擇移動后,還可選擇一次攻擊或待命的操作;玩家也可以不進行移動直接選擇攻擊或待命,這也會結束當前行動回合。

實現后的效果如下圖:

這次要做的非常少,因為之前已經寫好了戰斗邏輯,只需要把手動操作加入即可。

| 準備工作

首先,為戰斗單位設置一個是否為手動操作的標記。

其次,為戰斗單位設定一個手動操作狀態,標記這個戰斗單位是否可以移動、攻擊。

最后,新增一種新的戰斗單位操作狀態和動作,分別是等待玩家操作狀態及等待手動操作的動作。

當輪到玩家操作時,戰斗的單位會顯示綠色邊框。

| 手動操作的邏輯

大概思路是:戰場維護一個戰斗單位的行動隊列,每當輪到一個單位行動時,如果這個單位是自動操作的,那么它會自己決定目標,移動并攻擊,上回我們將二手手游賬號買號平臺數據與渲染進行了分離,因此它只是產生了一次行動數據(Action)。

如果這個單位是手動操作的,那它會產生一個等待手動輸入的行動數據,同時返回等待玩家操作狀態。

當戰場發現自己收到了一個等待玩家操作的狀態,就明白其實剛才的家伙并沒有生成任何有意義的戰斗數據,因此它必須通知自己的渲染器(那個用來顯示的模塊,上回我們介紹過):嘿,幫我問問他到底想干嘛?

渲染器通過UI與玩家進行交互,獲得玩家要移動、攻擊或是待命等“有用”的戰斗信息后,再回頭通知戰場“這個家伙已經行動過了”,戰場再讓下一個單位行動。

簡易的行動流程圖

由于下一回我們才會加入戰場UI,這里我們先用Unity自帶的GUI代替。

用GUI顯示一個列表,接收玩家的操作

| 寫在最后

2018年瞬間就過去了,回想年初時豪情萬丈列下的“2018年必做之十大事”,如今...額...都不敢看清單上有什么...

過去的就讓他過去吧...2019年,請自己繼續加油吧。

初心易得,始終難求。

下回見。

總結

以上是生活随笔為你收集整理的从零点五开始用Unity做半个2D战棋小游戏(四)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。