從零點五開始用Unity做半個2D戰棋小遊戲(一)
這次想要一個簡單且傳統的戰棋小遊戲,大概的玩法是:在2D世界裡建立一張由六邊形地塊組成的戰鬥地圖,敵我雙方依據體力在地圖上輪流行動並向對方發動攻擊,先消滅掉所有敵人的一方將獲得勝利。
預計將分為以下幾篇:
1、建立戰場
根據預定尺寸生成戰場地圖,並隨機一些障礙物。
2、新增戰場地圖功能
實現戰場格子點選反饋,地圖導航及範圍選定。
3、新增對戰雙方
向戰場中新增作戰單位,作戰單位按照一定規則輪流行動,可進行移動、攻擊等。
4、加入玩家控制
新增可以隨時顯示戰況的Hud、為作戰單位新增血條等。
5、新增戰場UI
新增可以隨時顯示戰況的Hud、為作戰單位新增血條等。
6、擴充套件作戰單位
豐富作戰單位的型別,新增職業,並加入若干不同型別的技能。
7、擴充套件戰場地圖
豐富戰場地圖,加入地形及道具等元素。
8、規範戰鬥配置
可以通過規範化的資料結構配置戰場、職業、技能、道具等。
一、建立戰場
本次的主題是建立戰場。
| 目標
生成一個規定尺寸的戰場,戰場上的格子均為六邊形,並且暫定兩種格子型別:普通格子和障礙格子。
| 在開始之前我做了以下事情
1.建立了新的工程。
2.新建場景並儲存在場景資料夾下。
3.刪除預設建立的平行光,調整場景光照設定,棄用了天空盒等。
4.將相機調整為正交相機。
因為是從零點五開始系列,認為讀者有一定的Unity引擎使用基礎,就不對這些操作進行介紹了。
| 建立戰場地圖
我沒有采用把資料和顯示捆綁在一起的做法,而是將資料和顯示分離。
我的思路是用一個戰鬥建立器來建立戰鬥,一場完整的戰鬥資訊至少應包含地圖及對戰雙方的資訊。而Unity搭建的戰鬥場景則可以理解為一場戰鬥的顯示器。
| 資料部分(主要)
戰鬥資料:地圖尺寸,包含所有格子的二維陣列。
格子資料:格子型別,所在行列,所在空間座標。
| 顯示部分(主要)
戰場:一個用於組織所有格子物件的節點物件。
格子物件:一個能顯示六邊形瓦片的2D渲染器,並根據格子型別改變顏色。
當需要將戰鬥表現出來時,需要將以上資料裝入一個用於顯示的“戰場”,這個戰場就是在Unity世界裡建立的。
| 在Unity中建立戰場
目前戰場的結構還非常簡單,只需要一個組織格子單位的節點。
| 建立格子
建立一個格子指令碼,並掛在一個新建立的空物件上。
為這個空物件新增一個子物件,稱之為瓦片,用來顯示一個六邊形。
因為這裡我只想做一個2D的Demo,因此我們只需要一個SpriteRenderer元件即可。
使用預先準備的一張六邊形圖片作為地塊顯示,一個格子物件就做好了。
為了區分普通和障礙,暫定普通格子為白色,障礙格子為灰色。
戰場載入後節點的狀態。
| 部分程式碼
鋪設普通格子。
隨機放一些障礙格子。
戰場根據格子資訊,顯示格子。
格子根據不同型別顯示不同顏色。
初始隨機多張地圖,並切換檢視。
至此,難度最低的第一篇已經完成。
來源: 遊戲扶持by騰訊遊戲學院
原地址:https://mp.weixin.qq.com/s/KPw5cihN4Sgpqoi86FAPkw
相關文章
- 用Unity做半個2D戰棋小遊戲(五):新增常用的介面Unity遊戲
- 用Unity做半個2D戰棋小遊戲(四):加入玩家控制Unity遊戲
- 用Unity做半個2D戰棋小遊戲(三):新增對戰雙方Unity遊戲
- 從零開始做一個SLG遊戲(三):用unity繪製圖形遊戲Unity
- 【Unity3D開發小遊戲】《戰棋小遊戲》Unity開發教程Unity3D遊戲
- 從零開始做一個SLG遊戲(五):UI系統之彈窗功能遊戲UI
- 從零開始:用REACT寫一個格鬥遊戲(一)React遊戲
- 從零開始做一個SLG遊戲(七):遊戲系統以及配置表遊戲
- 從零開始做一個SLG遊戲(一):六邊形網格遊戲
- 從零開始做一個SLG遊戲(二):用mesh實現簡單的地形遊戲
- 從零開始:用REACT寫一個格鬥遊戲(二)React遊戲
- 從零開始做一個SLG遊戲(八):配置表載入元件遊戲元件
- 從零開始做一個SLG遊戲(六):UI系統擴充套件遊戲UI套件
- 從零開始做一個SLG遊戲(四):UI系統之主介面搭建遊戲UI
- AlphaZero進化論:從零開始,制霸所有棋類遊戲遊戲
- 從0開始用python寫一個命令列小遊戲(二)Python命令列遊戲
- 從0開始用python寫一個命令列小遊戲(十)Python命令列遊戲
- 從0開始用python寫一個命令列小遊戲(六)Python命令列遊戲
- 用Unity做個遊戲(五) – 編輯器擴充套件Unity遊戲套件
- 從零開始實現一個RPC框架(五)RPC框架
- 邊學邊做的第一個Unity小遊戲Unity遊戲
- 從零開始實現放置遊戲(一)遊戲
- 從零開始學五筆(一):概述
- 用Unity做個遊戲(二) – 事件系統Unity遊戲事件
- Unity遊戲示例來了,用Unity開源遊戲資源做遊戲,遊戲開發不再難!Unity遊戲開發
- PyGame每日一練——五子棋小遊戲GAM遊戲
- 從零開始的Unity個人學習日記(二)Unity
- 從零開始寫一個ExporterExport
- 從零開始開發一個 WebpackWeb
- 基於 Blazor 開發五子棋⚫⚪小遊戲Blazor遊戲
- [Unity3D] 2D畫素遊戲(一) Hello Unity!Unity3D遊戲
- phaser3入門教程-從零開始開發一個打磚塊遊戲遊戲
- 從零開始實現一個RPC框架(零)RPC框架
- python做一個人機對戰五子棋,AI版本PythonAI
- 從零開始實現放置遊戲(一):整體框架搭建遊戲框架
- 【從零開始擼一個App】PKCEAPP
- 【從零開始擼一個App】KotlinAPPKotlin
- 從零開始用 electron 手擼一個截圖工具