五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《G SRPG》項目講解(一) Level&Map

2022-08-20 06:17 作者:DH_DoveG  | 我要投稿

《G SRPG》是使用Godot游戲引擎制作的一個【SRPG】類型的項目。該項目的源碼可訪問:https://www.aliyundrive.com/s/XY2qHQwGK26 獲取。這個專欄主要是說說我在制作《G SRPG》時的想法與思路。

棋盤是SRPG的基礎(chǔ)要素之一。本文簡要分享我在制作《G SRPG》的實現(xiàn)思路。

關(guān)于棋盤:

在此項目中,棋盤的場景及組件都存放在了【Map】文件夾下。文件結(jié)構(gòu)如下:

Map目錄下的文件結(jié)構(gòu)

雖然說該文件夾下的文件比較多(而且分類做得不好),但核心組件只是如下幾項:

Sub.tscn :選中下標(biāo)。非常重要的一個組件(因為該項目設(shè)計上操作是全鍵盤的)。

Clicks.gd :提供可讓Sub選中的區(qū)域。

Map.gd :管理繪制的TileMap

Units.gd :管理棋子的增減與行動系統(tǒng)(此項目中以棋子的速度決定行動順序)

Level.tscn :初始化組件

下面來介紹Level與Map:

Level.tscn

level

level的作用主要是做組件的初始化工作。

設(shè)置了三個變量方便設(shè)計關(guān)卡:

winNextScene :獲勝后載入的場景

loseNextScene :失敗后載入的場景

joinUnitNum :可以參加戰(zhàn)斗的棋子的人數(shù),這與另外一個場景(Plan)有關(guān),此處不介紹。


Map.gd

這腳本主要提供了用于棋子尋路的A*算法用于顯示棋子可以抵達(dá)的區(qū)域的洪水算法。

obsSet :為了方便修改障礙物與設(shè)置經(jīng)過障礙物所消耗的代價。以key為圖塊下標(biāo);value為經(jīng)過代價。如果代價是1以下的數(shù)值將是不可穿越的。

這函數(shù)會在棋子使用攻擊時調(diào)用

前面有幾段是轉(zhuǎn)換棋子們的坐標(biāo)

此函數(shù)使用了 MakeGrid.gd ,關(guān)于這個可以看我之前的視頻。顯示攻擊區(qū)域的話,不在Map中調(diào)用也是沒有問題的,不過在寫的時候,考慮到可能后續(xù)會有什么“不能隔著障礙物攻擊目標(biāo)”的攻擊模式所以就就將攻擊的顯示可攻擊區(qū)域的函數(shù)放到了Map中。

黃色區(qū)域為可攻擊區(qū)域

當(dāng)前的設(shè)計來說,無論攻擊區(qū)域上有沒有障礙物都是可以顯示攻擊區(qū)域。

接下來就是移動了,移動的話,一般顯示移動都是一個范圍,這個可以使用洪水算法這個我也是在搜索后才知道的,所以有問題果然還是馬上搜索一下比較好。

使用洪水算法獲得可以抵達(dá)的區(qū)域

這里在寫的時候,我做了將得到的范圍減去內(nèi)圈只保留最外面一圈的操作,這一段沒有什么愿意,即使刪掉減去內(nèi)圈的代碼也沒有什么影響。

藍(lán)色區(qū)域為生成可以移動到的區(qū)域

既然現(xiàn)在有區(qū)域了,那接下來就需要讓棋子移動到一個位置上去,這個項目中使用的是A*,我在這個項目中得到,大家可以去看載看一下。

說點閑話

這是第一次寫這種東西,寫得不好請見諒。


《G SRPG》項目講解(一) Level&Map的評論 (共 條)

分享到微博請遵守國家法律
疏勒县| 巴彦县| 吉首市| 栾川县| 启东市| 肇源县| 镇远县| 无棣县| 交口县| 商洛市| 双城市| 景宁| 井冈山市| 马龙县| 日土县| 五华县| 七台河市| 波密县| 平谷区| 黑龙江省| 陆丰市| 鹤峰县| 会泽县| 伽师县| 麟游县| 刚察县| 简阳市| 宜都市| 兴海县| 鸡东县| 无极县| 安龙县| 祁门县| 澄迈县| 尚义县| 苏尼特右旗| 准格尔旗| 高邮市| 四子王旗| 喀什市| 茌平县|