在线看成人I亚州精品视频Iwww.日日日.comI色中射I久久久久99精品国产片I高清精品在线I2021国产在线

您的位置:首頁 >觀察 > 正文

每日速看!DH-SRPG 三:單位的出戰(zhàn)與部署

大多數(shù)戰(zhàn)棋游戲都有予玩家在戰(zhàn)斗開始前根據(jù)游戲的局勢對作戰(zhàn)單位的挑選以及位置部署的能力,本項目也是如此的?,F(xiàn)在來看看在本項目中的單位出戰(zhàn)功能與部署功能是如何實現(xiàn)的。

這是單位挑選場景的節(jié)點結構的折疊圖(完整的節(jié)點樹見文章末尾),有6部分:

(注:CR為custom_這個場景的縮寫,沒有實際意義)


【資料圖】

TitleCR:顯示標題

UnitInfo: 顯示Pointer指向的單位的信息。

InfoCR:顯示如已出戰(zhàn)人數(shù)等信息

UnitList:單位的列表,用來顯示單位的圖像與名字等縮略信息,該節(jié)點下面有一個TempUnitItem的單位模板

Items:顯示功能選項,如“出擊”和”觀察“選項在這個節(jié)點下

Pointer:一個用來顯示現(xiàn)在選中的項的框

屬性:

start:這個方法用于啟動并接受一個單位數(shù)組來設置這個場景。該方法由上一節(jié)介紹的Scene調(diào)用,單位數(shù)組就是由Scene的create_units方法提供的。

下面來是對于輸入事件的處理

這里面做了兩件事,一是在不同狀態(tài)下的切換操作二是根據(jù)模式分配輸入事件給不同的方法處理。

然后是對輸入事件的一個攔截控制,因為在“觀察模式”下,Scene的指針是需要接受得到輸入事件來移動與查看場景信息的所以在“觀察模式”不會攔截輸入事件,而不是“觀察模式”時,面板是顯示的,不希望Scene的指針接受到輸入事件來移動哦,所以需要用get_viewport().set_input_as_handled()方法來攔截輸入事件阻止它繼續(xù)傳遞。

_btn_list_move:處理Pointer在Items上的移動與點擊,

在這個方法中,“出擊”匹配項會發(fā)出了一個"depart_signal"信號,這個信號表示要開始進行戰(zhàn)斗并代表玩家已經(jīng)挑選好了出戰(zhàn)的成員。這個信號在Scene節(jié)點進行連接:

可以看到這個游戲的開始由depart_signal這個信號決定的,這個lambda里面做了一些準備工作,例如關閉挑選界面的UI以及將我們挑選的這些單位的控制權交給玩家(其他沒有挑選的單位都是沒有控制權的)并將這些單位加入UnitManage來進行單位注冊。

_unit_list_move:處理Pointer在單位列表上的移動與點擊

可以看到這兩個方法的邏輯與是大致相同的。

在發(fā)出"add_unit_signal"添加信號與"remove_unit_signal"刪除信號時,都會由Scene節(jié)點的子節(jié)點Deploy處理。這個信號在Scene的_ready方法中進行連接:

Deploy:部署點,部署點是在挑選出戰(zhàn)成員時可供單位部署的位置。

上一節(jié)有簡要的概括?,F(xiàn)在來詳細看一下Deploy的使用方法。要使用Deploy需要先給它添加任意個有position屬性的節(jié)點作為子節(jié)點。

它根據(jù)子節(jié)點來決定可選位的數(shù)量與位置。

在制作關卡時,只需要給它添加Sprite節(jié)點(其他的也可以)來決定部署點的位置。

不過目前部署點是在運行時決定的,如果需要多次使用Deploy與要在游戲過程中改變Deploy需要對這部分進行調(diào)整(后續(xù)應該會進行調(diào)整)。

Scene將PreparePlan的add_unit_signal與remove_unit_signal信號都交由Deploy進行處理,它們的實現(xiàn)很簡單,就是遍歷positions找到?jīng)]有使用的位置就進行設置,或者找到要刪除的unit就進行刪除

在觀察模式下進行單位位置的調(diào)整

上面在PreparePlan的_btn_list_move方法中有提到“觀察模式”,在加入觀察模式時,PreparePlan顯示的節(jié)點將發(fā)生變化,它會隱藏部分面板,并且不再阻止輸入事件的傳遞。這將允許玩家操作Scene的Pointer來操作部署點與查看敵方的棋子信息。

這時Scene將會根據(jù)Deploy的顯示狀態(tài)來將Pointer點擊事件交給Deploy處理

deploy的pointer_callable方法會在沒有選中unit時嘗試進行選中,在已經(jīng)選中unit時會嘗試進行位置交換

這一系列的組合的效果:

在調(diào)整好位置后,就可以開始戰(zhàn)斗了。

總結

PreparePlan決定出戰(zhàn)單位,Deploy決定單位的位置。PreparePlan與Deploy之間沒有直接聯(lián)系,由Scene作為橋梁。這得益于Godot的信號機制。

在創(chuàng)建新關卡時,只需要給Deploy添加擁有位置屬性的子節(jié)點即可。而最大出戰(zhàn)人數(shù)則需要在PreparePlan的檢查器中調(diào)整,需要勾選“子節(jié)點可編輯”選項。

下一節(jié)我們將介紹一下用于管理單位的UnitManage,看它是如何管理Unit的行動的。

致歉:因為項目的更新隨時都有可能會破壞原有的代碼,您在看到此文時它可能已經(jīng)不是最新的了,請以現(xiàn)在項目的具體情況為準。歡迎大家給項目提Issues項目地址:/DH-DoveG/dh-srpg-demo

關鍵詞

熱門資訊

圖片新聞

主站蜘蛛池模板: 久久久久国产 | 久久人人爽av亚洲精品天堂 | 亚洲精品a级 | 国产乱人激情h在线观看 | 亚洲精品无码久久久久sm | 免费裸体无遮挡黄网站免费看 | 国产成人无码一二三区视频 | 黄色资源在线观看 | 夜夜欢性恔免费视频 | 国产一区在线观看免费 | 国产免费无码一区二区视频 | 激情综合色综合啪啪开心 | 五月婷婷之综合激情 | 日韩观看 | 日日日日做夜夜夜夜做无码 | 亚洲欧美一区二区久久香蕉 | 亚洲v国产v欧美v久久久久久 | 一级片片| 亚洲国产成人av人片久久 | 男女性关系视频免费观看软件 | 成人免费观看国产高清 | 亚洲三级视频在线观看 | 色妺妺在线视频 | 国产女主播在线 | 一区二区三区四区在线 | 欧美午夜性春猛交bbb | 欧美日韩综合在线视频免费看 | 一区二区三区在线 | 网站 | 久久久久久国产精品 | 亚洲中文字幕久久精品无码va | 天天看天天爽天天摸天天添 | 久久久久久免费毛片精品 | 欧美亚洲国产一区二区三区 | 理论片午午伦夜理片在线播放 | 摸丰满大乳奶水www免费 | 国产欧美日韩综合精品二区 | 色偷偷888欧美精品久久久 | 国产一区二区久久 | 国产91一区二这在线播放 | 日日夜夜撸啊撸 | 国产精品亚洲一区二区 | 大学生久久香蕉国产线看观看 | 国产又大又粗又爽的毛片 | 久久久久久无码精品人妻a片软件 | 日本超碰 | 狠狠躁夜夜躁人人爽蜜桃 | 久久久久亚洲国产av麻豆 | A片扒开双腿猛进入免费观看 | 国产精品视频1区 | 调教套上奶牛榨乳器喷奶水 | 国产精品国产三级国产aⅴ中文 | 久久精品中文騷妇女内射 | 亚洲图片日本视频免费 | 欧美一级毛片高清免费观看 | 午夜伦费影视在线观看 | 中字幕视频在线永久在线观看免费 | 91小视频在线观看免费版高清 | 亚洲综合视频网 | 欧美另类videossexo高潮 | 国产免费久久久久久无码 | 九九51精品国产免费看 | 日韩在线免费电影 | 特黄aaaaaaa片免费视频 | 亚洲成人动漫在线观看 | 久久国产精品无码一区二区三区 | 亚洲精品久久久一二三区 | 亚洲黄色a级 | 亚洲精品国偷拍自产在线观看 | 粗大的内捧猛烈进出 | 丝袜老师办公室里做好紧好爽 | 欧美日韩综合在线视频免费看 | 精品视频在线免费播放 | 我把寡妇日出水好爽视频 | 亚洲最新无码成av人 | 亚洲日韩精品无码一区二区三区 | 国产肥熟女视频一区二区三区 | 久久国产免费 | 色欲综合久久中文字幕网 | 日本三级2018亚洲视频 | 超级碰碰碰视频在线观看 | 免费在线观看的毛片 | 99爱在线视频这里只有精品 | 色黄视频在线观看 | 综合激情五月综合激情五月激情1 | 欧美黑人激情性久久 | 中文字幕一区在线观看视频 | 国产精品揄拍100视频最近 | 国产精品视频第一页 | 女女互揉吃奶揉到高潮视频 | 久久精品国产精品亚洲综合 | 色爱阁| 毛片毛片毛片毛片毛片毛片毛片 | 久久精品草 | 欧美aaaaaaaa| 毛片国产 | 久草热8精品视频在线观看 久激情内射婷内射蜜桃 | 国产福利视频一区 | 久久婷婷五月综合色中文字幕 | 手机在线一区二区三区 |