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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

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

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

好久不見。

這是第17篇與游戲開發(fā)有關(guān)的文章。

也是“從零點五開始系列”第二輯的開始。

| 寫在最前

這次想要做的一個小游戲,或者說一個小Demo,其實是一個簡單且傳統(tǒng)的戰(zhàn)棋戰(zhàn)斗場景。初步的設計是:在2D世界里創(chuàng)建一張由六邊形地塊組成的戰(zhàn)斗地圖,敵我雙方依據(jù)體力在地圖上輪流行動并向?qū)Ψ桨l(fā)動攻擊,先消滅掉所有敵人的一方將獲得勝利。

這一輯將比上一輯的內(nèi)容更簡單,但完成后會是一個功能較完整且可以玩耍的Demo。

我使用的Unity版本是2018.2.7,但是其實并沒有用到2018的任何新功能。


預計將分為以下幾篇:

1、創(chuàng)建戰(zhàn)場

根據(jù)預定尺寸生成戰(zhàn)場地圖,并隨機一些障礙物。

2、添加對戰(zhàn)雙方

向戰(zhàn)場中添加作戰(zhàn)單位,作戰(zhàn)單位可被點選,并進行移動。

3、戰(zhàn)場邏輯

作戰(zhàn)雙方按照順序依次行動,可進行移動、攻擊。

4、添加戰(zhàn)場UI

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

5、擴展作戰(zhàn)單位

豐富作戰(zhàn)單位的類型,添加職業(yè),并加入若干不同類型的技能。

6、擴展戰(zhàn)場地圖

豐富戰(zhàn)場地圖,加入地形及道具等元素。

7、規(guī)范戰(zhàn)斗配置

可以通過規(guī)范化的數(shù)據(jù)結(jié)構(gòu)配置戰(zhàn)場、職業(yè)、技能、道具等。


本次的主題是創(chuàng)建戰(zhàn)場。

| 目標

生成一個規(guī)定尺寸的戰(zhàn)場,戰(zhàn)場上的格子均為六邊形,并且暫定兩種格子類型:普通格子和障礙格子。

| 在開始之前我做了以下事情

1.創(chuàng)建了新的工程。

2.新建場景并保存在場景文件夾下。

3.刪除默認創(chuàng)建的平行光,調(diào)整場景光照設置,棄用了天空盒等。

4.將相機調(diào)整為正交相機。

因為是從零點五開始系列,認為讀者有一定的Unity引擎使用基礎(chǔ),就不對這些操作進行介紹了。

| 創(chuàng)建戰(zhàn)場地圖

我沒有采用把數(shù)據(jù)和顯示捆綁在一起的做法,而是將數(shù)據(jù)和顯示分離。

我的思路是用一個戰(zhàn)斗創(chuàng)建器來創(chuàng)建戰(zhàn)斗,一場完整的戰(zhàn)斗信息至少應包含地圖及對戰(zhàn)雙方的信息。而Unity搭建的戰(zhàn)斗場景則可以理解為一場戰(zhàn)斗的顯示器。

| 數(shù)據(jù)部分(主要)

戰(zhàn)斗數(shù)據(jù):地圖尺寸,包含所有格子的二維數(shù)組。

格子數(shù)據(jù):格子類型,所在行列,所在空間坐標。

| 顯示部分(主要)

戰(zhàn)場:一個用于組織所有格子對象的節(jié)點對象。

格子對象:一個能顯示六邊形瓦片的2D渲染器,并根據(jù)格子類型改變顏色。

當需要將戰(zhàn)斗表現(xiàn)出來時,需要將以上數(shù)據(jù)裝入一個用于顯示的“戰(zhàn)場”,這個戰(zhàn)場就是在Unity世界里創(chuàng)建的。

| 在Unity中創(chuàng)建戰(zhàn)場

目前戰(zhàn)場的結(jié)構(gòu)還非常簡單,只需要一個組織格子單位的節(jié)點。

| 創(chuàng)建格子

創(chuàng)建一個格子腳本,并掛在一個新創(chuàng)建的空對象上。

為這個二手手游賬號買賣添加一個子對象,稱之為瓦片,用來顯示一個六邊形。

因為這里我只想做一個2D的Demo,因此我們只需要一個SpriteRenderer組件即可。

使用預先準備的一張六邊形圖片作為地塊顯示,一個格子對象就做好了。

為了區(qū)分普通和障礙,暫定普通格子為白色,障礙格子為灰色。

戰(zhàn)場加載后節(jié)點的狀態(tài)。

| 部分代碼

鋪設普通格子

隨機放一些障礙格子

戰(zhàn)場根據(jù)格子信息,顯示格子

格子根據(jù)不同類型顯示不同顏色

初始隨機多張地圖,并切換查看。


| 寫在最后

至此,難度最低的第一篇已經(jīng)完成。

感謝您能讀到這里。

愿不忘初心。

下回見。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。